diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,12 @@
 
 ## WIP
 
+## [3.26] - 2023-10-17
+- Bump API version to v1.3.268
+  - A breaking change is that `VkBufferMemoryBarrier` has extensions,
+    and as such must be wrapped with `SomeStruct` when being passed
+    in lists, for example in `cmdPipelineBarrier`
+
 ## [3.25] - 2023-10-17
 - Bump API version to v1.3.246
   - VulkanSC is not included
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.25"
+version: "3.26"
 synopsis: Bindings to the Vulkan graphics API.
 description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category: Graphics
diff --git a/src/Vulkan/CStruct/Extends.hs b/src/Vulkan/CStruct/Extends.hs
--- a/src/Vulkan/CStruct/Extends.hs
+++ b/src/Vulkan/CStruct/Extends.hs
@@ -78,6 +78,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (AmigoProfilingSubmitInfoSEC)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatProperties2ANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatPropertiesANDROID)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (AndroidHardwareBufferFormatResolvePropertiesANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferPropertiesANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferUsageANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_android_surface (AndroidSurfaceCreateInfoKHR)
@@ -98,9 +99,11 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (BindImageMemorySwapchainInfoKHR)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (BindImagePlaneMemoryInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindIndexBufferIndirectCommandNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (BindPipelineIndirectCommandNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindShaderGroupIndirectCommandNV)
 import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (BlitImageCubicWeightsInfoQCOM)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (BufferCaptureDescriptorDataInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionBufferCreateInfoFUCHSIA)
@@ -120,6 +123,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV)
@@ -142,8 +146,10 @@
 import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (ComputePipelineIndirectBufferInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (ConformanceVersion)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (CooperativeMatrixPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR)
@@ -153,9 +159,12 @@
 import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToImageInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToMemoryInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (CopyMemoryIndirectCommandNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (CopyMemoryToImageIndirectCommandNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyMemoryToImageInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMemoryToMicromapInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapToMemoryInfoEXT)
@@ -177,6 +186,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationImageCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationMemoryAllocateInfoNV)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasRepresentationInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorAddressInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingPushDescriptorBufferHandleEXT)
@@ -217,6 +228,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupSubmitInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupSwapchainCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (DeviceImageSubresourceInfoKHR)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceMemoryReportCallbackDataEXT)
@@ -227,6 +239,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_LUNARG_direct_driver_loading (DirectDriverLoadingInfoLUNARG)
 import {-# SOURCE #-} Vulkan.Extensions.VK_LUNARG_direct_driver_loading (DirectDriverLoadingListLUNARG)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (DispatchGraphCountInfoAMDX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (DispatchGraphInfoAMDX)
 import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DispatchIndirectCommand)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModeCreateInfoKHR)
@@ -253,6 +267,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesList2EXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesListEXT)
 import {-# SOURCE #-} Vulkan.Core10.Event (EventCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineCreateInfoAMDX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineScratchSizeAMDX)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence (ExportFenceCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (ExportFenceWin32HandleInfoKHR)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExportMemoryAllocateInfo)
@@ -275,8 +291,10 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalBufferProperties)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (ExternalFenceProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ExternalFormatQNX)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalImageFormatProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalImageFormatPropertiesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryBufferCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryImageCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExternalMemoryImageCreateInfoNV)
@@ -290,6 +308,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentImageInfo)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo)
@@ -300,12 +319,15 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryDataNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryTrianglesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (GetLatencyMarkerInfoNV)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (GraphicsPipelineCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (GraphicsPipelineLibraryCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsPipelineShaderGroupsCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsShaderGroupCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (HdrMetadataEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageCopyDevicePerformanceQueryEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageLayoutTransitionInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2)
@@ -333,10 +355,11 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageSubresource2EXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
 import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (ImageSwapchainCreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (ImageToMemoryCopyEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (ImageViewASTCDecodeModeEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewAddressPropertiesNVX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageViewCaptureDescriptorDataInfoEXT)
@@ -359,6 +382,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalIOSurfaceInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalSharedEventInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalTextureInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ImportScreenBufferInfoQNX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA)
@@ -368,6 +392,11 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (InputAttachmentAspectReference)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (InstanceCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepModeInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySubmissionPresentIdNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySurfaceCapabilitiesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencyTimingsFrameReportNV)
 import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK)
 import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange)
@@ -390,6 +419,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (MemoryPriorityAllocateInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (MemoryToImageCopyEXT)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryType)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_map_memory2 (MemoryUnmapInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR)
@@ -417,6 +447,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreatePrivateDataInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (OutOfBandQueueTypeInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE)
 import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceConfigurationAcquireInfoINTEL)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceCounterDescriptionKHR)
@@ -434,6 +465,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT)
@@ -447,15 +479,20 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (PhysicalDeviceDepthBiasControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT)
@@ -465,7 +502,9 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
@@ -476,16 +515,22 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpacePropertiesNV)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolveFeaturesANDROID)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolvePropertiesANDROID)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (PhysicalDeviceExternalSemaphoreInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures)
@@ -505,10 +550,13 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (PhysicalDeviceFrameBoundaryFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)
@@ -516,6 +564,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2PropertiesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)
@@ -528,6 +578,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
+import {-# SOURCE #-} Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
@@ -536,6 +587,8 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5FeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5PropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionPropertiesNV)
@@ -555,6 +608,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT)
@@ -596,6 +651,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
@@ -617,6 +673,8 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueuePropertiesAMDX)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)
@@ -670,6 +728,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (PhysicalDeviceYcbcrDegammaFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)
 import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo)
@@ -682,6 +741,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedback)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDepthStencilStateCreateInfo)
@@ -693,6 +753,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PipelineFragmentShadingRateEnumStateCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PipelineIndirectDeviceAddressInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineInputAssemblyStateCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo)
@@ -712,6 +773,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PipelineShaderStageNodeCreateInfoAMDX)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)
@@ -766,6 +828,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (RenderingAreaInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)
@@ -774,14 +837,19 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (SRTDataNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (SamplerBlockMatchWindowCreateInfoQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (SamplerBorderColorComponentMappingCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (SamplerCaptureDescriptorDataInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (SamplerCubicWeightsCreateInfoQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (SamplerReductionModeCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionImageFormatProperties)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ScreenBufferFormatPropertiesQNX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ScreenBufferPropertiesQNX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX)
 import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR)
@@ -791,6 +859,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SetLatencyMarkerInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (SetStateFlagsIndirectCommandNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)
@@ -829,8 +898,9 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (SubpassResolvePerformanceQueryEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SubpassSampleLocationsEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (SubresourceHostMemcpySizeEXT)
 import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (SubresourceLayout2EXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceCapabilitiesFullScreenExclusiveEXT)
@@ -847,6 +917,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (SwapchainCounterCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SwapchainLatencyCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentFenceInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModeInfoEXT)
@@ -1002,6 +1073,8 @@
   Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureTrianglesDisplacementMicromapNV = ()
   Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatPropertiesANDROID = ()
   Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatProperties2ANDROID = ()
+  Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatResolvePropertiesANDROID = ()
+  Extends AttachmentDescription2 ExternalFormatANDROID = ()
   Extends AttachmentDescription2 AttachmentDescriptionStencilLayout = ()
   Extends AttachmentReference2 AttachmentReferenceStencilLayout = ()
   Extends BindBufferMemoryInfo BindBufferMemoryDeviceGroupInfo = ()
@@ -1010,6 +1083,9 @@
   Extends BindImageMemoryInfo BindImagePlaneMemoryInfo = ()
   Extends BindSparseInfo DeviceGroupBindSparseInfo = ()
   Extends BindSparseInfo TimelineSemaphoreSubmitInfo = ()
+  Extends BindSparseInfo FrameBoundaryEXT = ()
+  Extends BlitImageInfo2 BlitImageCubicWeightsInfoQCOM = ()
+  Extends BufferCreateInfo BufferUsageFlags2CreateInfoKHR = ()
   Extends BufferCreateInfo DedicatedAllocationBufferCreateInfoNV = ()
   Extends BufferCreateInfo ExternalMemoryBufferCreateInfo = ()
   Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = ()
@@ -1017,19 +1093,26 @@
   Extends BufferCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = ()
   Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = ()
   Extends BufferImageCopy2 CopyCommandTransformInfoQCOM = ()
+  Extends BufferMemoryBarrier ExternalMemoryAcquireUnmodifiedEXT = ()
+  Extends BufferMemoryBarrier2 ExternalMemoryAcquireUnmodifiedEXT = ()
+  Extends BufferViewCreateInfo BufferUsageFlags2CreateInfoKHR = ()
   Extends BufferViewCreateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = ()
   Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = ()
+  Extends CommandBufferInheritanceInfo ExternalFormatANDROID = ()
   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()
   Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = ()
   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfo = ()
   Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = ()
   Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = ()
+  Extends ComputePipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = ()
   Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()
   Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()
   Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()
   Extends ComputePipelineCreateInfo PipelineRobustnessCreateInfoEXT = ()
   Extends DebugUtilsMessengerCallbackDataEXT DeviceAddressBindingCallbackDataEXT = ()
+  Extends DepthBiasInfoEXT DepthBiasRepresentationInfoEXT = ()
+  Extends DescriptorBufferBindingInfoEXT BufferUsageFlags2CreateInfoKHR = ()
   Extends DescriptorBufferBindingInfoEXT DescriptorBufferBindingPushDescriptorBufferHandleEXT = ()
   Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = ()
   Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoEXT = ()
@@ -1038,6 +1121,7 @@
   Extends DescriptorSetLayoutCreateInfo MutableDescriptorTypeCreateInfoEXT = ()
   Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = ()
   Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = ()
   Extends DeviceCreateInfo DevicePrivateDataCreateInfo = ()
   Extends DeviceCreateInfo PhysicalDevicePrivateDataFeatures = ()
   Extends DeviceCreateInfo (PhysicalDeviceFeatures2 '[]) = ()
@@ -1054,6 +1138,7 @@
   Extends DeviceCreateInfo PhysicalDeviceMultiDrawFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceMaintenance4Features = ()
+  Extends DeviceCreateInfo PhysicalDeviceMaintenance5FeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = ()
   Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = ()
@@ -1144,12 +1229,14 @@
   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceImage2DViewOf3DFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceSynchronization2Features = ()
+  Extends DeviceCreateInfo PhysicalDeviceHostImageCopyFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceLegacyDitheringFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = ()
@@ -1168,6 +1255,7 @@
   Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ()
+  Extends DeviceCreateInfo PhysicalDeviceNestedCommandBufferFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderModuleIdentifierFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ()
@@ -1188,15 +1276,31 @@
   Extends DeviceCreateInfo PhysicalDeviceFaultFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderCoreBuiltinsFeaturesARM = ()
+  Extends DeviceCreateInfo PhysicalDeviceFrameBoundaryFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceSwapchainMaintenance1FeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceDepthBiasControlFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceRayTracingInvocationReorderFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = ()
   Extends DeviceCreateInfo PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = ()
+  Extends DeviceCreateInfo PhysicalDeviceRayTracingPositionFetchFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderObjectFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderTileImageFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = ()
+  Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesKHR = ()
+  Extends DeviceCreateInfo PhysicalDeviceShaderEnqueueFeaturesAMDX = ()
+  Extends DeviceCreateInfo PhysicalDeviceCubicClampFeaturesQCOM = ()
+  Extends DeviceCreateInfo PhysicalDeviceYcbcrDegammaFeaturesQCOM = ()
+  Extends DeviceCreateInfo PhysicalDeviceCubicWeightsFeaturesQCOM = ()
+  Extends DeviceCreateInfo PhysicalDeviceImageProcessing2FeaturesQCOM = ()
+  Extends DeviceCreateInfo PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = ()
+  Extends DeviceCreateInfo PhysicalDeviceExternalFormatResolveFeaturesANDROID = ()
   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()
   Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends EventCreateInfo ImportMetalSharedEventInfoEXT = ()
+  Extends ExecutionGraphPipelineCreateInfoAMDX PipelineCreationFeedbackCreateInfo = ()
+  Extends ExecutionGraphPipelineCreateInfoAMDX PipelineCompilerControlCreateInfoAMD = ()
   Extends ExportMetalObjectsInfoEXT ExportMetalDeviceInfoEXT = ()
   Extends ExportMetalObjectsInfoEXT ExportMetalCommandQueueInfoEXT = ()
   Extends ExportMetalObjectsInfoEXT ExportMetalBufferInfoEXT = ()
@@ -1210,8 +1314,10 @@
   Extends FormatProperties2 FormatProperties3 = ()
   Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = ()
   Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = ()
+  Extends GraphicsPipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = ()
   Extends GraphicsPipelineCreateInfo GraphicsPipelineShaderGroupsCreateInfoNV = ()
   Extends GraphicsPipelineCreateInfo PipelineDiscardRectangleStateCreateInfoEXT = ()
+  Extends GraphicsPipelineCreateInfo ExternalFormatANDROID = ()
   Extends GraphicsPipelineCreateInfo PipelineRepresentativeFragmentTestStateCreateInfoNV = ()
   Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()
   Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()
@@ -1240,14 +1346,18 @@
   Extends ImageCreateInfo ImportMetalTextureInfoEXT = ()
   Extends ImageCreateInfo ImportMetalIOSurfaceInfoEXT = ()
   Extends ImageCreateInfo OpticalFlowImageFormatInfoNV = ()
+  Extends ImageCreateInfo ExternalFormatQNX = ()
   Extends ImageFormatProperties2 ExternalImageFormatProperties = ()
   Extends ImageFormatProperties2 SamplerYcbcrConversionImageFormatProperties = ()
   Extends ImageFormatProperties2 TextureLODGatherFormatPropertiesAMD = ()
   Extends ImageFormatProperties2 AndroidHardwareBufferUsageANDROID = ()
   Extends ImageFormatProperties2 FilterCubicImageViewImageFormatPropertiesEXT = ()
+  Extends ImageFormatProperties2 HostImageCopyDevicePerformanceQueryEXT = ()
   Extends ImageFormatProperties2 ImageCompressionPropertiesEXT = ()
   Extends ImageMemoryBarrier SampleLocationsInfoEXT = ()
+  Extends ImageMemoryBarrier ExternalMemoryAcquireUnmodifiedEXT = ()
   Extends ImageMemoryBarrier2 SampleLocationsInfoEXT = ()
+  Extends ImageMemoryBarrier2 ExternalMemoryAcquireUnmodifiedEXT = ()
   Extends ImageMemoryRequirementsInfo2 ImagePlaneMemoryRequirementsInfo = ()
   Extends ImageViewCreateInfo ImageViewUsageCreateInfo = ()
   Extends ImageViewCreateInfo ImageViewSlicedCreateInfoEXT = ()
@@ -1281,10 +1391,13 @@
   Extends MemoryAllocateInfo ImportMemoryBufferCollectionFUCHSIA = ()
   Extends MemoryAllocateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends MemoryAllocateInfo ImportMetalBufferInfoEXT = ()
+  Extends MemoryAllocateInfo ImportScreenBufferInfoQNX = ()
   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()
   Extends OpticalFlowSessionCreateInfoNV OpticalFlowSessionCreatePrivateDataInfoNV = ()
+  Extends PhysicalDeviceExternalBufferInfo BufferUsageFlags2CreateInfoKHR = ()
   Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = ()
@@ -1298,6 +1411,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiDrawFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4Features = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance5FeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDrawParametersFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloat16Int8Features = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceHostQueryResetFeatures = ()
@@ -1385,12 +1499,14 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImage2DViewOf3DFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2Features = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceHostImageCopyFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceLegacyDitheringFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = ()
@@ -1409,6 +1525,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceNestedCommandBufferFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderModuleIdentifierFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ()
@@ -1429,12 +1546,26 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceFaultFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderCoreBuiltinsFeaturesARM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceFrameBoundaryFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceSwapchainMaintenance1FeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthBiasControlFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingInvocationReorderFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingPositionFetchFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderObjectFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTileImageFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesKHR = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderEnqueueFeaturesAMDX = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceCubicClampFeaturesQCOM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrDegammaFeaturesQCOM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceCubicWeightsFeaturesQCOM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageProcessing2FeaturesQCOM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalFormatResolveFeaturesANDROID = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()
@@ -1460,6 +1591,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance3Properties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4Properties = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance5PropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFloatControlsProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceExternalMemoryHostPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceConservativeRasterizationPropertiesEXT = ()
@@ -1499,6 +1631,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceHostImageCopyPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = ()
@@ -1506,6 +1639,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceNestedCommandBufferPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderModuleIdentifierPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceOpacityMicromapPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDisplacementMicromapPropertiesNV = ()
@@ -1514,9 +1648,15 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceOpticalFlowPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderCoreBuiltinsPropertiesARM = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingInvocationReorderPropertiesNV = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceExtendedSparseAddressSpacePropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderCorePropertiesARM = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderObjectPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderTileImagePropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesKHR = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceShaderEnqueuePropertiesAMDX = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceImageProcessing2PropertiesQCOM = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceLayeredDriverPropertiesMSFT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceExternalFormatResolvePropertiesANDROID = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = ()
@@ -1532,12 +1672,14 @@
   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = ()
   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = ()
   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = ()
+  Extends PipelineRasterizationStateCreateInfo DepthBiasRepresentationInfoEXT = ()
   Extends PipelineShaderStageCreateInfo (ShaderModuleCreateInfo '[]) = ()
   Extends PipelineShaderStageCreateInfo ShaderModuleValidationCacheCreateInfoEXT = ()
   Extends PipelineShaderStageCreateInfo DebugUtilsObjectNameInfoEXT = ()
   Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfo = ()
   Extends PipelineShaderStageCreateInfo PipelineShaderStageModuleIdentifierCreateInfoEXT = ()
   Extends PipelineShaderStageCreateInfo PipelineRobustnessCreateInfoEXT = ()
+  Extends PipelineShaderStageCreateInfo PipelineShaderStageNodeCreateInfoAMDX = ()
   Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = ()
   Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()
   Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()
@@ -1552,6 +1694,7 @@
   Extends PresentInfoKHR PresentIdKHR = ()
   Extends PresentInfoKHR PresentTimesInfoGOOGLE = ()
   Extends PresentInfoKHR PresentFrameTokenGGP = ()
+  Extends PresentInfoKHR FrameBoundaryEXT = ()
   Extends PresentInfoKHR SwapchainPresentFenceInfoEXT = ()
   Extends PresentInfoKHR SwapchainPresentModeInfoEXT = ()
   Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = ()
@@ -1559,8 +1702,10 @@
   Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesKHR = ()
   Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = ()
   Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = ()
+  Extends RayTracingPipelineCreateInfoKHR PipelineCreateFlags2CreateInfoKHR = ()
   Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfo = ()
   Extends RayTracingPipelineCreateInfoKHR PipelineRobustnessCreateInfoEXT = ()
+  Extends RayTracingPipelineCreateInfoNV PipelineCreateFlags2CreateInfoKHR = ()
   Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfo = ()
   Extends RenderPassBeginInfo DeviceGroupRenderPassBeginInfo = ()
   Extends RenderPassBeginInfo RenderPassSampleLocationsBeginInfoEXT = ()
@@ -1584,7 +1729,12 @@
   Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()
   Extends SamplerCreateInfo SamplerBorderColorComponentMappingCreateInfoEXT = ()
   Extends SamplerCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = ()
+  Extends SamplerCreateInfo SamplerCubicWeightsCreateInfoQCOM = ()
+  Extends SamplerCreateInfo SamplerBlockMatchWindowCreateInfoQCOM = ()
   Extends SamplerYcbcrConversionCreateInfo ExternalFormatANDROID = ()
+  Extends SamplerYcbcrConversionCreateInfo ExternalFormatQNX = ()
+  Extends SamplerYcbcrConversionCreateInfo SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = ()
+  Extends ScreenBufferPropertiesQNX ScreenBufferFormatPropertiesQNX = ()
   Extends SemaphoreCreateInfo ExportSemaphoreCreateInfo = ()
   Extends SemaphoreCreateInfo ExportSemaphoreWin32HandleInfoKHR = ()
   Extends SemaphoreCreateInfo SemaphoreTypeCreateInfo = ()
@@ -1601,9 +1751,13 @@
   Extends SubmitInfo TimelineSemaphoreSubmitInfo = ()
   Extends SubmitInfo PerformanceQuerySubmitInfoKHR = ()
   Extends SubmitInfo AmigoProfilingSubmitInfoSEC = ()
+  Extends SubmitInfo FrameBoundaryEXT = ()
+  Extends SubmitInfo LatencySubmissionPresentIdNV = ()
   Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoNV = ()
   Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoKHR = ()
   Extends SubmitInfo2 PerformanceQuerySubmitInfoKHR = ()
+  Extends SubmitInfo2 FrameBoundaryEXT = ()
+  Extends SubmitInfo2 LatencySubmissionPresentIdNV = ()
   Extends SubpassDependency2 MemoryBarrier2 = ()
   Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = ()
   Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = ()
@@ -1611,7 +1765,8 @@
   Extends SubpassDescription2 RenderPassCreationControlEXT = ()
   Extends SubpassDescription2 RenderPassSubpassFeedbackCreateInfoEXT = ()
   Extends SubpassEndInfo SubpassFragmentDensityMapOffsetEndInfoQCOM = ()
-  Extends SubresourceLayout2EXT ImageCompressionPropertiesEXT = ()
+  Extends SubresourceLayout2KHR SubresourceHostMemcpySizeEXT = ()
+  Extends SubresourceLayout2KHR ImageCompressionPropertiesEXT = ()
   Extends SurfaceCapabilities2KHR DisplayNativeHdrSurfaceCapabilitiesAMD = ()
   Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = ()
   Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = ()
@@ -1619,6 +1774,7 @@
   Extends SurfaceCapabilities2KHR SurfaceCapabilitiesPresentBarrierNV = ()
   Extends SurfaceCapabilities2KHR SurfacePresentScalingCapabilitiesEXT = ()
   Extends SurfaceCapabilities2KHR SurfacePresentModeCompatibilityEXT = ()
+  Extends SurfaceCapabilities2KHR LatencySurfaceCapabilitiesNV = ()
   Extends SurfaceFormat2KHR ImageCompressionPropertiesEXT = ()
   Extends SwapchainCreateInfoKHR SwapchainCounterCreateInfoEXT = ()
   Extends SwapchainCreateInfoKHR DeviceGroupSwapchainCreateInfoKHR = ()
@@ -1630,6 +1786,7 @@
   Extends SwapchainCreateInfoKHR ImageCompressionControlEXT = ()
   Extends SwapchainCreateInfoKHR SwapchainPresentModesCreateInfoEXT = ()
   Extends SwapchainCreateInfoKHR SwapchainPresentScalingCreateInfoEXT = ()
+  Extends SwapchainCreateInfoKHR SwapchainLatencyCreateInfoNV = ()
   Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = ()
   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = ()
   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = ()
@@ -1735,7 +1892,9 @@
   -> (forall e . (Extends a e, ToCStruct e, Show e) => e -> b)
   -> IO b
 peekChainHead ty p c = case ty of
+  STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR -> go @BufferUsageFlags2CreateInfoKHR
   STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO -> go @(ShaderModuleCreateInfo '[])
+  STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR -> go @PipelineCreateFlags2CreateInfoKHR
   STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR -> go @DisplayPresentInfoKHR
   STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -> go @DebugReportCallbackCreateInfoEXT
   STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -> go @ValidationFlagsEXT
@@ -1750,6 +1909,7 @@
   STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV -> go @ExportMemoryWin32HandleInfoNV
   STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -> go @Win32KeyedMutexAcquireReleaseInfoNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
   STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO -> go @DevicePrivateDataCreateInfo
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES -> go @PhysicalDevicePrivateDataFeatures
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
@@ -1844,6 +2004,8 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES -> go @PhysicalDeviceMaintenance3Properties
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES -> go @PhysicalDeviceMaintenance4Features
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -> go @PhysicalDeviceMaintenance4Properties
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR -> go @PhysicalDeviceMaintenance5FeaturesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance5PropertiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES -> go @PhysicalDeviceShaderDrawParametersFeatures
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES -> go @PhysicalDeviceShaderFloat16Int8Features
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES -> go @PhysicalDeviceFloatControlsProperties
@@ -2044,6 +2206,7 @@
   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT -> go @PhysicalDeviceImage2DViewOf3DFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT -> go @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT -> go @PhysicalDeviceMutableDescriptorTypeFeaturesEXT
   STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT -> go @MutableDescriptorTypeCreateInfoEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthClipControlFeaturesEXT
@@ -2055,6 +2218,10 @@
   STRUCTURE_TYPE_MEMORY_BARRIER_2 -> go @MemoryBarrier2
   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES -> go @PhysicalDeviceSynchronization2Features
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT -> go @PhysicalDeviceHostImageCopyFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT -> go @PhysicalDeviceHostImageCopyPropertiesEXT
+  STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT -> go @SubresourceHostMemcpySizeEXT
+  STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT -> go @HostImageCopyDevicePerformanceQueryEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT -> go @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT -> go @PhysicalDeviceLegacyDitheringFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT -> go @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
@@ -2102,6 +2269,8 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT -> go @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
   STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT -> go @GraphicsPipelineLibraryCreateInfoEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE -> go @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT -> go @PhysicalDeviceNestedCommandBufferFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT -> go @PhysicalDeviceNestedCommandBufferPropertiesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT -> go @PhysicalDeviceShaderModuleIdentifierFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT -> go @PhysicalDeviceShaderModuleIdentifierPropertiesEXT
   STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT -> go @PipelineShaderStageModuleIdentifierCreateInfoEXT
@@ -2121,6 +2290,7 @@
   STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Nothing Nothing
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT -> go @PhysicalDevicePipelinePropertiesFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD -> go @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
+  STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT -> go @ExternalMemoryAcquireUnmodifiedEXT
   STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT -> go @ExportMetalObjectCreateInfoEXT
   STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT -> go @ExportMetalDeviceInfoEXT
   STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT -> go @ExportMetalCommandQueueInfoEXT
@@ -2152,8 +2322,12 @@
   STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV -> go @OpticalFlowSessionCreatePrivateDataInfoNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT -> go @PhysicalDeviceFaultFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT -> go @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
+  STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT -> go @DepthBiasRepresentationInfoEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM -> go @PhysicalDeviceShaderCoreBuiltinsPropertiesARM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM -> go @PhysicalDeviceShaderCoreBuiltinsFeaturesARM
+  STRUCTURE_TYPE_FRAME_BOUNDARY_EXT -> go @FrameBoundaryEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT -> go @PhysicalDeviceFrameBoundaryFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT -> go @PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
   STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT -> go @SurfacePresentModeEXT
   STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT -> go @SurfacePresentScalingCapabilitiesEXT
   STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT -> go @SurfacePresentModeCompatibilityEXT
@@ -2162,10 +2336,14 @@
   STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT -> go @SwapchainPresentModesCreateInfoEXT
   STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT -> go @SwapchainPresentModeInfoEXT
   STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT -> go @SwapchainPresentScalingCreateInfoEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthBiasControlFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV -> go @PhysicalDeviceRayTracingInvocationReorderFeaturesNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV -> go @PhysicalDeviceRayTracingInvocationReorderPropertiesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV -> go @PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV -> go @PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
   STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG -> go @DirectDriverLoadingListLUNARG
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM -> go @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR -> go @PhysicalDeviceRayTracingPositionFetchFeaturesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM -> go @PhysicalDeviceShaderCorePropertiesARM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM -> go @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
   STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM -> go @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM
@@ -2174,6 +2352,32 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT -> go @PhysicalDeviceShaderObjectPropertiesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT -> go @PhysicalDeviceShaderTileImageFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT -> go @PhysicalDeviceShaderTileImagePropertiesEXT
+  STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX -> go @ImportScreenBufferInfoQNX
+  STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX -> go @ScreenBufferFormatPropertiesQNX
+  STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX -> go @ExternalFormatQNX
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX -> go @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR -> go @PhysicalDeviceCooperativeMatrixFeaturesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR -> go @PhysicalDeviceCooperativeMatrixPropertiesKHR
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX -> go @PhysicalDeviceShaderEnqueuePropertiesAMDX
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX -> go @PhysicalDeviceShaderEnqueueFeaturesAMDX
+  STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX -> go @PipelineShaderStageNodeCreateInfoAMDX
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM -> go @PhysicalDeviceCubicClampFeaturesQCOM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM -> go @PhysicalDeviceYcbcrDegammaFeaturesQCOM
+  STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM -> go @SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM -> go @PhysicalDeviceCubicWeightsFeaturesQCOM
+  STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM -> go @SamplerCubicWeightsCreateInfoQCOM
+  STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM -> go @BlitImageCubicWeightsInfoQCOM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM -> go @PhysicalDeviceImageProcessing2FeaturesQCOM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM -> go @PhysicalDeviceImageProcessing2PropertiesQCOM
+  STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM -> go @SamplerBlockMatchWindowCreateInfoQCOM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV -> go @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT -> go @PhysicalDeviceLayeredDriverPropertiesMSFT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID -> go @PhysicalDeviceExternalFormatResolveFeaturesANDROID
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID -> go @PhysicalDeviceExternalFormatResolvePropertiesANDROID
+  STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID -> go @AndroidHardwareBufferFormatResolvePropertiesANDROID
+  STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV -> go @LatencySubmissionPresentIdNV
+  STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV -> go @SwapchainLatencyCreateInfoNV
+  STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV -> go @LatencySurfaceCapabilitiesNV
   t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing
  where
   go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
@@ -2227,7 +2431,9 @@
 pattern a ::& es <- (\a -> (a, getNext a) -> (a, es))
   where a ::& es = setNext a es
 infix 6 ::&
+{-# complete (::&) :: BufferUsageFlags2CreateInfoKHR #-}
 {-# complete (::&) :: ShaderModuleCreateInfo #-}
+{-# complete (::&) :: PipelineCreateFlags2CreateInfoKHR #-}
 {-# complete (::&) :: DisplayPresentInfoKHR #-}
 {-# complete (::&) :: DebugReportCallbackCreateInfoEXT #-}
 {-# complete (::&) :: ValidationFlagsEXT #-}
@@ -2242,6 +2448,7 @@
 {-# complete (::&) :: ExportMemoryWin32HandleInfoNV #-}
 {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoNV #-}
 {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV #-}
 {-# complete (::&) :: DevicePrivateDataCreateInfo #-}
 {-# complete (::&) :: PhysicalDevicePrivateDataFeatures #-}
 {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV #-}
@@ -2336,6 +2543,8 @@
 {-# complete (::&) :: PhysicalDeviceMaintenance3Properties #-}
 {-# complete (::&) :: PhysicalDeviceMaintenance4Features #-}
 {-# complete (::&) :: PhysicalDeviceMaintenance4Properties #-}
+{-# complete (::&) :: PhysicalDeviceMaintenance5FeaturesKHR #-}
+{-# complete (::&) :: PhysicalDeviceMaintenance5PropertiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceShaderDrawParametersFeatures #-}
 {-# complete (::&) :: PhysicalDeviceShaderFloat16Int8Features #-}
 {-# complete (::&) :: PhysicalDeviceFloatControlsProperties #-}
@@ -2536,6 +2745,7 @@
 {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}
 {-# complete (::&) :: PhysicalDeviceImage2DViewOf3DFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceImageSlicedViewOf3DFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesEXT #-}
 {-# complete (::&) :: MutableDescriptorTypeCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceDepthClipControlFeaturesEXT #-}
@@ -2547,6 +2757,10 @@
 {-# complete (::&) :: MemoryBarrier2 #-}
 {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-}
 {-# complete (::&) :: PhysicalDeviceSynchronization2Features #-}
+{-# complete (::&) :: PhysicalDeviceHostImageCopyFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceHostImageCopyPropertiesEXT #-}
+{-# complete (::&) :: SubresourceHostMemcpySizeEXT #-}
+{-# complete (::&) :: HostImageCopyDevicePerformanceQueryEXT #-}
 {-# complete (::&) :: PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceLegacyDitheringFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT #-}
@@ -2594,6 +2808,8 @@
 {-# complete (::&) :: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT #-}
 {-# complete (::&) :: GraphicsPipelineLibraryCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE #-}
+{-# complete (::&) :: PhysicalDeviceNestedCommandBufferFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceNestedCommandBufferPropertiesEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT #-}
 {-# complete (::&) :: PipelineShaderStageModuleIdentifierCreateInfoEXT #-}
@@ -2613,6 +2829,7 @@
 {-# complete (::&) :: AccelerationStructureTrianglesDisplacementMicromapNV #-}
 {-# complete (::&) :: PhysicalDevicePipelinePropertiesFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD #-}
+{-# complete (::&) :: ExternalMemoryAcquireUnmodifiedEXT #-}
 {-# complete (::&) :: ExportMetalObjectCreateInfoEXT #-}
 {-# complete (::&) :: ExportMetalDeviceInfoEXT #-}
 {-# complete (::&) :: ExportMetalCommandQueueInfoEXT #-}
@@ -2644,8 +2861,12 @@
 {-# complete (::&) :: OpticalFlowSessionCreatePrivateDataInfoNV #-}
 {-# complete (::&) :: PhysicalDeviceFaultFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT #-}
+{-# complete (::&) :: DepthBiasRepresentationInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderCoreBuiltinsPropertiesARM #-}
 {-# complete (::&) :: PhysicalDeviceShaderCoreBuiltinsFeaturesARM #-}
+{-# complete (::&) :: FrameBoundaryEXT #-}
+{-# complete (::&) :: PhysicalDeviceFrameBoundaryFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT #-}
 {-# complete (::&) :: SurfacePresentModeEXT #-}
 {-# complete (::&) :: SurfacePresentScalingCapabilitiesEXT #-}
 {-# complete (::&) :: SurfacePresentModeCompatibilityEXT #-}
@@ -2654,10 +2875,14 @@
 {-# complete (::&) :: SwapchainPresentModesCreateInfoEXT #-}
 {-# complete (::&) :: SwapchainPresentModeInfoEXT #-}
 {-# complete (::&) :: SwapchainPresentScalingCreateInfoEXT #-}
+{-# complete (::&) :: PhysicalDeviceDepthBiasControlFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceRayTracingInvocationReorderFeaturesNV #-}
 {-# complete (::&) :: PhysicalDeviceRayTracingInvocationReorderPropertiesNV #-}
+{-# complete (::&) :: PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceExtendedSparseAddressSpacePropertiesNV #-}
 {-# complete (::&) :: DirectDriverLoadingListLUNARG #-}
 {-# complete (::&) :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM #-}
+{-# complete (::&) :: PhysicalDeviceRayTracingPositionFetchFeaturesKHR #-}
 {-# complete (::&) :: PhysicalDeviceShaderCorePropertiesARM #-}
 {-# complete (::&) :: PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM #-}
 {-# complete (::&) :: MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM #-}
@@ -2666,6 +2891,32 @@
 {-# complete (::&) :: PhysicalDeviceShaderObjectPropertiesEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderTileImageFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderTileImagePropertiesEXT #-}
+{-# complete (::&) :: ImportScreenBufferInfoQNX #-}
+{-# complete (::&) :: ScreenBufferFormatPropertiesQNX #-}
+{-# complete (::&) :: ExternalFormatQNX #-}
+{-# complete (::&) :: PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX #-}
+{-# complete (::&) :: PhysicalDeviceCooperativeMatrixFeaturesKHR #-}
+{-# complete (::&) :: PhysicalDeviceCooperativeMatrixPropertiesKHR #-}
+{-# complete (::&) :: PhysicalDeviceShaderEnqueuePropertiesAMDX #-}
+{-# complete (::&) :: PhysicalDeviceShaderEnqueueFeaturesAMDX #-}
+{-# complete (::&) :: PipelineShaderStageNodeCreateInfoAMDX #-}
+{-# complete (::&) :: PhysicalDeviceCubicClampFeaturesQCOM #-}
+{-# complete (::&) :: PhysicalDeviceYcbcrDegammaFeaturesQCOM #-}
+{-# complete (::&) :: SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM #-}
+{-# complete (::&) :: PhysicalDeviceCubicWeightsFeaturesQCOM #-}
+{-# complete (::&) :: SamplerCubicWeightsCreateInfoQCOM #-}
+{-# complete (::&) :: BlitImageCubicWeightsInfoQCOM #-}
+{-# complete (::&) :: PhysicalDeviceImageProcessing2FeaturesQCOM #-}
+{-# complete (::&) :: PhysicalDeviceImageProcessing2PropertiesQCOM #-}
+{-# complete (::&) :: SamplerBlockMatchWindowCreateInfoQCOM #-}
+{-# complete (::&) :: PhysicalDeviceDescriptorPoolOverallocationFeaturesNV #-}
+{-# complete (::&) :: PhysicalDeviceLayeredDriverPropertiesMSFT #-}
+{-# complete (::&) :: PhysicalDeviceExternalFormatResolveFeaturesANDROID #-}
+{-# complete (::&) :: PhysicalDeviceExternalFormatResolvePropertiesANDROID #-}
+{-# complete (::&) :: AndroidHardwareBufferFormatResolvePropertiesANDROID #-}
+{-# complete (::&) :: LatencySubmissionPresentIdNV #-}
+{-# complete (::&) :: SwapchainLatencyCreateInfoNV #-}
+{-# complete (::&) :: LatencySurfaceCapabilitiesNV #-}
 
 -- | View the head and tail of a 'Chain', see '::&'
 --
diff --git a/src/Vulkan/Core10/APIConstants.hs b/src/Vulkan/Core10/APIConstants.hs
--- a/src/Vulkan/Core10/APIConstants.hs
+++ b/src/Vulkan/Core10/APIConstants.hs
@@ -52,6 +52,8 @@
                                    , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR
                                    , MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
                                    , pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
+                                   , SHADER_INDEX_UNUSED_AMDX
+                                   , pattern SHADER_INDEX_UNUSED_AMDX
                                    , pattern NULL_HANDLE
                                    , IsHandle
                                    , HasObjectType(..)
@@ -65,7 +67,7 @@
 import Vulkan.Core10.Enums.ObjectType (ObjectType)
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.Enums.PipelineCacheHeaderVersion (PipelineCacheHeaderVersion(..))
--- | VK_LOD_CLAMP_NONE - Maximum level of detail unclamped access sentinel
+-- | VK_LOD_CLAMP_NONE - Maximum LOD unclamped access sentinel
 --
 -- = See Also
 --
@@ -358,6 +360,17 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>
 pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT :: forall a . Integral a => a
 pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = 32
+
+
+type SHADER_INDEX_UNUSED_AMDX = 0xffffffff
+
+-- | VK_SHADER_INDEX_UNUSED_AMDX - Sentinel for an unused shader index
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>
+pattern SHADER_INDEX_UNUSED_AMDX :: Word32
+pattern SHADER_INDEX_UNUSED_AMDX = 0xffffffff
 
 
 -- | VK_NULL_HANDLE - Reserved non-valid object handle
diff --git a/src/Vulkan/Core10/AllocationCallbacks.hs b/src/Vulkan/Core10/AllocationCallbacks.hs
--- a/src/Vulkan/Core10/AllocationCallbacks.hs
+++ b/src/Vulkan/Core10/AllocationCallbacks.hs
@@ -25,6 +25,36 @@
 -- | VkAllocationCallbacks - Structure containing callback function pointers
 -- for memory allocation
 --
+-- = Description
+--
+-- -   @pUserData@ is a value to be interpreted by the implementation of
+--     the callbacks. When any of the callbacks in 'AllocationCallbacks'
+--     are called, the Vulkan implementation will pass this value as the
+--     first parameter to the callback. This value /can/ vary each time an
+--     allocator is passed into a command, even when the same object takes
+--     an allocator in multiple commands.
+--
+-- -   @pfnAllocation@ is a
+--     'Vulkan.Core10.FuncPointers.PFN_vkAllocationFunction' pointer to an
+--     application-defined memory allocation function.
+--
+-- -   @pfnReallocation@ is a
+--     'Vulkan.Core10.FuncPointers.PFN_vkReallocationFunction' pointer to
+--     an application-defined memory reallocation function.
+--
+-- -   @pfnFree@ is a 'Vulkan.Core10.FuncPointers.PFN_vkFreeFunction'
+--     pointer to an application-defined memory free function.
+--
+-- -   @pfnInternalAllocation@ is a
+--     'Vulkan.Core10.FuncPointers.PFN_vkInternalAllocationNotification'
+--     pointer to an application-defined function that is called by the
+--     implementation when the implementation makes internal allocations.
+--
+-- -   @pfnInternalFree@ is a
+--     'Vulkan.Core10.FuncPointers.PFN_vkInternalFreeNotification' pointer
+--     to an application-defined function that is called by the
+--     implementation when the implementation frees internal allocations.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkAllocationCallbacks-pfnAllocation-00632# @pfnAllocation@
@@ -73,7 +103,9 @@
 -- 'Vulkan.Extensions.VK_EXT_directfb_surface.createDirectFBSurfaceEXT',
 -- 'Vulkan.Extensions.VK_KHR_display.createDisplayModeKHR',
 -- 'Vulkan.Extensions.VK_KHR_display.createDisplayPlaneSurfaceKHR',
--- 'Vulkan.Core10.Event.createEvent', 'Vulkan.Core10.Fence.createFence',
+-- 'Vulkan.Core10.Event.createEvent',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
+-- 'Vulkan.Core10.Fence.createFence',
 -- 'Vulkan.Core10.Pass.createFramebuffer',
 -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
 -- 'Vulkan.Extensions.VK_EXT_headless_surface.createHeadlessSurfaceEXT',
@@ -161,33 +193,17 @@
 -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT',
 -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT'
 data AllocationCallbacks = AllocationCallbacks
-  { -- | @pUserData@ is a value to be interpreted by the implementation of the
-    -- callbacks. When any of the callbacks in 'AllocationCallbacks' are
-    -- called, the Vulkan implementation will pass this value as the first
-    -- parameter to the callback. This value /can/ vary each time an allocator
-    -- is passed into a command, even when the same object takes an allocator
-    -- in multiple commands.
+  { -- No documentation found for Nested "VkAllocationCallbacks" "pUserData"
     userData :: Ptr ()
-  , -- | @pfnAllocation@ is a
-    -- 'Vulkan.Core10.FuncPointers.PFN_vkAllocationFunction' pointer to an
-    -- application-defined memory allocation function.
+  , -- No documentation found for Nested "VkAllocationCallbacks" "pfnAllocation"
     pfnAllocation :: PFN_vkAllocationFunction
-  , -- | @pfnReallocation@ is a
-    -- 'Vulkan.Core10.FuncPointers.PFN_vkReallocationFunction' pointer to an
-    -- application-defined memory reallocation function.
+  , -- No documentation found for Nested "VkAllocationCallbacks" "pfnReallocation"
     pfnReallocation :: PFN_vkReallocationFunction
-  , -- | @pfnFree@ is a 'Vulkan.Core10.FuncPointers.PFN_vkFreeFunction' pointer
-    -- to an application-defined memory free function.
+  , -- No documentation found for Nested "VkAllocationCallbacks" "pfnFree"
     pfnFree :: PFN_vkFreeFunction
-  , -- | @pfnInternalAllocation@ is a
-    -- 'Vulkan.Core10.FuncPointers.PFN_vkInternalAllocationNotification'
-    -- pointer to an application-defined function that is called by the
-    -- implementation when the implementation makes internal allocations.
+  , -- No documentation found for Nested "VkAllocationCallbacks" "pfnInternalAllocation"
     pfnInternalAllocation :: PFN_vkInternalAllocationNotification
-  , -- | @pfnInternalFree@ is a
-    -- 'Vulkan.Core10.FuncPointers.PFN_vkInternalFreeNotification' pointer to
-    -- an application-defined function that is called by the implementation
-    -- when the implementation frees internal allocations.
+  , -- No documentation found for Nested "VkAllocationCallbacks" "pfnInternalFree"
     pfnInternalFree :: PFN_vkInternalFreeNotification
   }
   deriving (Typeable)
diff --git a/src/Vulkan/Core10/Buffer.hs b/src/Vulkan/Core10/Buffer.hs
--- a/src/Vulkan/Core10/Buffer.hs
+++ b/src/Vulkan/Core10/Buffer.hs
@@ -61,6 +61,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (BufferDeviceAddressCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo)
 import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
 import Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationBufferCreateInfoNV)
 import Vulkan.Core10.Handles (Device)
@@ -107,11 +108,42 @@
 -- -   #VUID-vkCreateBuffer-flags-00911# If the @flags@ member of
 --     @pCreateInfo@ includes
 --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT',
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+--     feature is not enabled, creating this 'Vulkan.Core10.Handles.Buffer'
+--     /must/ not cause the total required sparse memory for all currently
+--     valid sparse resources on the device to exceed
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@
+--
+-- -   #VUID-vkCreateBuffer-flags-09383# If the @flags@ member of
+--     @pCreateInfo@ includes
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT',
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+--     feature is enabled, and the @usage@ member of @pCreateInfo@ contains
+--     bits not in
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseBufferUsageFlags@,
 --     creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the
 --     total required sparse memory for all currently valid sparse
---     resources on the device to exceed
+--     resources on the device, excluding 'Vulkan.Core10.Handles.Buffer'
+--     created with @usage@ member of @pCreateInfo@ containing bits in
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseBufferUsageFlags@
+--     and 'Vulkan.Core10.Handles.Image' created with @usage@ member of
+--     @pCreateInfo@ containing bits in
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseImageUsageFlags@,
+--     to exceed
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@
 --
+-- -   #VUID-vkCreateBuffer-flags-09384# If the @flags@ member of
+--     @pCreateInfo@ includes
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+--     feature is enabled, creating this 'Vulkan.Core10.Handles.Buffer'
+--     /must/ not cause the total required sparse memory for all currently
+--     valid sparse resources on the device to exceed
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseAddressSpaceSize@
+--
 -- -   #VUID-vkCreateBuffer-pNext-06387# If using the
 --     'Vulkan.Core10.Handles.Buffer' for an import operation from a
 --     'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA' where a
@@ -279,6 +311,14 @@
 -- | VkBufferCreateInfo - Structure specifying the parameters of a newly
 -- created buffer object
 --
+-- = Description
+--
+-- If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain,
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@
+-- from that structure is used instead of @usage@ from this structure.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkBufferCreateInfo-size-00912# @size@ /must/ be greater than
@@ -410,18 +450,18 @@
 --     creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the
 --     total required space for all currently valid buffers using this flag
 --     on the device to exceed
---     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@samplerDescriptorBufferAddressSpaceSize@
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@samplerDescriptorBufferAddressSpaceSize@
 --     or
---     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@descriptorBufferAddressSpaceSize@
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@descriptorBufferAddressSpaceSize@
 --
 -- -   #VUID-VkBufferCreateInfo-usage-08098# If @usage@ includes
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT',
 --     creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the
 --     total required space for all currently valid buffers using this flag
 --     on the device to exceed
---     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@resourceDescriptorBufferAddressSpaceSize@
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@resourceDescriptorBufferAddressSpaceSize@
 --     or
---     VkPhysicalDeviceDescriptorBufferPropertiesEXT::@descriptorBufferAddressSpaceSize@
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@descriptorBufferAddressSpaceSize@
 --
 -- -   #VUID-VkBufferCreateInfo-flags-08099# If @flags@ includes
 --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT',
@@ -453,6 +493,17 @@
 --     or
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
 --
+-- -   #VUID-VkBufferCreateInfo-None-09205# If the @pNext@ chain does not
+--     include a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+--     structure, @usage@ must be a valid combination of
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
+--
+-- -   #VUID-VkBufferCreateInfo-None-09206# If the @pNext@ chain does not
+--     include a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+--     structure, @usage@ /must/ not be @0@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkBufferCreateInfo-sType-sType# @sType@ /must/ be
@@ -464,6 +515,7 @@
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA',
 --     'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo',
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR',
 --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',
 --     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT',
@@ -478,13 +530,6 @@
 --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits'
 --     values
 --
--- -   #VUID-VkBufferCreateInfo-usage-parameter# @usage@ /must/ be a valid
---     combination of
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
---
--- -   #VUID-VkBufferCreateInfo-usage-requiredbitmask# @usage@ /must/ not
---     be @0@
---
 -- -   #VUID-VkBufferCreateInfo-sharingMode-parameter# @sharingMode@ /must/
 --     be a valid 'Vulkan.Core10.Enums.SharingMode.SharingMode' value
 --
@@ -538,6 +583,7 @@
     | Just Refl <- eqT @e @BufferOpaqueCaptureAddressCreateInfo = Just f
     | Just Refl <- eqT @e @ExternalMemoryBufferCreateInfo = Just f
     | Just Refl <- eqT @e @DedicatedAllocationBufferCreateInfoNV = Just f
+    | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss BufferCreateInfo es
diff --git a/src/Vulkan/Core10/BufferView.hs b/src/Vulkan/Core10/BufferView.hs
--- a/src/Vulkan/Core10/BufferView.hs
+++ b/src/Vulkan/Core10/BufferView.hs
@@ -45,6 +45,7 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.Handles (Buffer)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
 import Vulkan.Core10.Handles (BufferView)
 import Vulkan.Core10.Handles (BufferView(..))
 import Vulkan.Core10.Enums.BufferViewCreateFlags (BufferViewCreateFlags)
@@ -240,6 +241,17 @@
 -- | VkBufferViewCreateInfo - Structure specifying parameters of a newly
 -- created buffer view
 --
+-- = Description
+--
+-- The buffer view has a /buffer view usage/ identifying which descriptor
+-- types can be created from it. This usage /can/ be defined by including
+-- the
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+-- structure in the @pNext@ chain, and specifying the @usage@ value there.
+-- If this structure is not included, it is equal to the
+-- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@ value used to create
+-- @buffer@.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkBufferViewCreateInfo-offset-00925# @offset@ /must/ be less
@@ -281,16 +293,18 @@
 --     or
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT'
 --
--- -   #VUID-VkBufferViewCreateInfo-buffer-00933# If @buffer@ was created
---     with @usage@ containing
+-- -   #VUID-VkBufferViewCreateInfo-format-08778# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usage buffer view usage>
+--     contains
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT',
 --     then
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
 --     of @format@ /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT'
 --
--- -   #VUID-VkBufferViewCreateInfo-buffer-00934# If @buffer@ was created
---     with @usage@ containing
+-- -   #VUID-VkBufferViewCreateInfo-format-08779# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usage buffer view usage>
+--     contains
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT',
 --     then
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
@@ -340,13 +354,33 @@
 --     structure, its @exportObjectType@ member /must/ be
 --     'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT'
 --
+-- -   #VUID-VkBufferViewCreateInfo-pNext-08780# If the @pNext@ chain
+--     includes a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR',
+--     its @usage@ /must/ not contain any other bit than
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR'
+--     or
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR'
+--
+-- -   #VUID-VkBufferViewCreateInfo-pNext-08781# If the @pNext@ chain
+--     includes a
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR',
+--     its @usage@ /must/ be a subset of the
+--     'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@ specified or
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@
+--     from 'Vulkan.Core10.Buffer.BufferCreateInfo'::@pNext@ when creating
+--     @buffer@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkBufferViewCreateInfo-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO'
 --
--- -   #VUID-VkBufferViewCreateInfo-pNext-pNext# @pNext@ /must/ be @NULL@
---     or a pointer to a valid instance of
+-- -   #VUID-VkBufferViewCreateInfo-pNext-pNext# Each @pNext@ member of any
+--     structure (including this one) in the @pNext@ chain /must/ be either
+--     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+--     or
 --     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'
 --
 -- -   #VUID-VkBufferViewCreateInfo-sType-unique# The @sType@ value of each
@@ -407,6 +441,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferViewCreateInfo e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss BufferViewCreateInfo es
diff --git a/src/Vulkan/Core10/CommandBuffer.hs b/src/Vulkan/Core10/CommandBuffer.hs
--- a/src/Vulkan/Core10/CommandBuffer.hs
+++ b/src/Vulkan/Core10/CommandBuffer.hs
@@ -98,6 +98,7 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
 import Vulkan.Core10.Handles (Framebuffer)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)
 import Vulkan.CStruct.Extends (PeekChain)
@@ -435,10 +436,15 @@
 --
 -- = Description
 --
+-- The command buffer /must/ have been in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>,
+-- and, if successful, is moved to the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.
+--
 -- If there was an error during recording, the application will be notified
--- by an unsuccessful return code returned by 'endCommandBuffer'. If the
--- application wishes to further use the command buffer, the command buffer
--- /must/ be reset.
+-- by an unsuccessful return code returned by 'endCommandBuffer', and the
+-- command buffer will be moved to the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.
 --
 -- In case the application recorded one or more
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>
@@ -457,11 +463,6 @@
 -- command as a means to verify Video Std parameters, as implementations
 -- are not required to report the error in any specific set of cases.
 --
--- The command buffer /must/ have been in the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>,
--- and is moved to the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.
---
 -- == Valid Usage
 --
 -- -   #VUID-vkEndCommandBuffer-commandBuffer-00059# @commandBuffer@ /must/
@@ -754,6 +755,7 @@
 --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo',
 --     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'
 --
@@ -842,6 +844,7 @@
     | Just Refl <- eqT @e @CommandBufferInheritanceRenderingInfo = Just f
     | Just Refl <- eqT @e @CommandBufferInheritanceViewportScissorInfoNV = Just f
     | Just Refl <- eqT @e @CommandBufferInheritanceRenderPassTransformInfoQCOM = Just f
+    | Just Refl <- eqT @e @ExternalFormatANDROID = Just f
     | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f
     | otherwise = Nothing
 
@@ -905,6 +908,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-VkCommandBufferBeginInfo-flags-09123# If @flags@ contains
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT',
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
 -- -   #VUID-VkCommandBufferBeginInfo-flags-00055# If @flags@ contains
 --     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT',
 --     the @framebuffer@ member of @pInheritanceInfo@ /must/ be either
@@ -912,18 +920,13 @@
 --     'Vulkan.Core10.Handles.Framebuffer' that is compatible with the
 --     @renderPass@ member of @pInheritanceInfo@
 --
--- -   #VUID-VkCommandBufferBeginInfo-flags-06000# If @flags@ contains
---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
---     and the @renderPass@ member of @pInheritanceInfo@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @renderPass@ /must/ be a
---     valid 'Vulkan.Core10.Handles.RenderPass'
---
--- -   #VUID-VkCommandBufferBeginInfo-flags-06001# If @flags@ contains
+-- -   #VUID-VkCommandBufferBeginInfo-flags-09240# If @flags@ contains
 --     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
---     and the @renderPass@ member of @pInheritanceInfo@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @subpass@ member of
---     @pInheritanceInfo@ /must/ be a valid subpass index within the
---     @renderPass@ member of @pInheritanceInfo@
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>
+--     feature is not enabled, the @renderPass@ member of
+--     @pInheritanceInfo@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
 -- -   #VUID-VkCommandBufferBeginInfo-flags-06002# If @flags@ contains
 --     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
@@ -944,6 +947,20 @@
 --     structure, the @colorAttachmentCount@ member of that structure
 --     /must/ be equal to the value of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@
+--
+-- -   #VUID-VkCommandBufferBeginInfo-flags-06000# If @flags@ contains
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+--     and the @renderPass@ member of @pInheritanceInfo@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @renderPass@ member of
+--     @pInheritanceInfo@ /must/ be a valid
+--     'Vulkan.Core10.Handles.RenderPass'
+--
+-- -   #VUID-VkCommandBufferBeginInfo-flags-06001# If @flags@ contains
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+--     and the @renderPass@ member of @pInheritanceInfo@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the @subpass@ member of
+--     @pInheritanceInfo@ /must/ be a valid subpass index within the
+--     @renderPass@ member of @pInheritanceInfo@
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core10/CommandBufferBuilding.hs b/src/Vulkan/Core10/CommandBufferBuilding.hs
--- a/src/Vulkan/Core10/CommandBufferBuilding.hs
+++ b/src/Vulkan/Core10/CommandBufferBuilding.hs
@@ -248,22372 +248,25457 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader object>
 -- as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects-pipeline-interaction Interaction with Pipelines>.
--- Commands that do not interact with the given pipeline type /must/ not be
--- affected by the pipeline state.
---
--- -   The pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
---     controls the behavior of all
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch dispatching commands>.
---
--- -   The pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     controls the behavior of all
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>.
---
--- -   The pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR'
---     controls the behavior of
---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' and
---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'.
---
--- -   The pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'
---     controls the behavior of
---     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI'.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00777# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support compute operations
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00778# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00779# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
---     @pipeline@ /must/ be a compute pipeline
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00780# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
---     @pipeline@ /must/ be a graphics pipeline
---
--- -   #VUID-vkCmdBindPipeline-pipeline-00781# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>
---     feature is not supported, @pipeline@ is a graphics pipeline, the
---     current subpass
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments uses no attachments>,
---     and this is not the first call to this function with a graphics
---     pipeline after transitioning to the current subpass, then the sample
---     count specified by this pipeline /must/ match that set in the
---     previous pipeline
---
--- -   #VUID-vkCmdBindPipeline-variableSampleLocations-01525# If
---     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @pipeline@ is a
---     graphics pipeline created with a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---     structure having its @sampleLocationsEnable@ member set to
---     'Vulkan.Core10.FundamentalTypes.TRUE' but without
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     enabled then the current render pass instance /must/ have been begun
---     by specifying a
---     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'
---     structure whose @pPostSubpassSampleLocations@ member contains an
---     element with a @subpassIndex@ matching the current subpass index and
---     the @sampleLocationsInfo@ member of that element /must/ match the
---     @sampleLocationsInfo@ specified in
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---     when the pipeline was created
---
--- -   #VUID-vkCmdBindPipeline-None-02323# This command /must/ not be
---     recorded when transform feedback is active
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02391# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support compute operations
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
---     @pipeline@ /must/ be a ray tracing pipeline
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-06721# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>
---     feature is enabled, and @commandBuffer@ is a protected command
---     buffer, @pipeline@ /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'
---
--- -   #VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>
---     feature is enabled, and @commandBuffer@ is not a protected command
---     buffer, @pipeline@ /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'
---
--- -   #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have
---     been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
---     set
---
--- -   #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a
---     secondary command buffer with
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
---     enabled and @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
---     then the @pipeline@ /must/ have been created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
---     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled
---
--- -   #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a
---     secondary command buffer with
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
---     enabled and @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     and @pipeline@ was created with
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'
---     structure and its @discardRectangleCount@ member is not @0@, or the
---     pipeline was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     enabled, then the pipeline /must/ have been created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'
---     enabled
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>
---     limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s
---     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@
---     /must/ be the same as that of any other pipelines previously bound
---     to this bind point within the current render pass instance,
---     including any pipeline already bound when beginning the render pass
---     instance
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04949# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support compute operations
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04950# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',
---     @pipeline@ /must/ be a subpass shading pipeline
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-06653# If
---     @pipelineBindPoint@ is
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
---     @pipeline@ /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-parameter#
---     @pipelineBindPoint@ /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
---
--- -   #VUID-vkCmdBindPipeline-pipeline-parameter# @pipeline@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Pipeline' handle
---
--- -   #VUID-vkCmdBindPipeline-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-vkCmdBindPipeline-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdBindPipeline-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdBindPipeline-commonparent# Both of @commandBuffer@, and
---     @pipeline@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',
--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'
-cmdBindPipeline :: forall io
-                 . (MonadIO io)
-                => -- | @commandBuffer@ is the command buffer that the pipeline will be bound
-                   -- to.
-                   CommandBuffer
-                -> -- | @pipelineBindPoint@ is a
-                   -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
-                   -- specifying to which bind point the pipeline is bound. Binding one does
-                   -- not disturb the others.
-                   PipelineBindPoint
-                -> -- | @pipeline@ is the pipeline to be bound.
-                   Pipeline
-                -> io ()
-cmdBindPipeline commandBuffer pipelineBindPoint pipeline = liftIO $ do
-  let vkCmdBindPipelinePtr = pVkCmdBindPipeline (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdBindPipelinePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing
-  let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr
-  traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline'
-                                          (commandBufferHandle (commandBuffer))
-                                          (pipelineBindPoint)
-                                          (pipeline))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetViewport
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()
-
--- | vkCmdSetViewport - Set the viewport dynamically for a command buffer
---
--- = Description
---
--- This command sets the viewport transformation parameters state for
--- subsequent drawing commands when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pViewports@
--- values used to create the currently active pipeline.
---
--- The viewport parameters taken from element i of @pViewports@ replace the
--- current state for the viewport index @firstViewport@ + i, for i in [0,
--- @viewportCount@).
---
--- == Valid Usage
---
--- -   #VUID-vkCmdSetViewport-firstViewport-01223# The sum of
---     @firstViewport@ and @viewportCount@ /must/ be between @1@ and
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,
---     inclusive
---
--- -   #VUID-vkCmdSetViewport-firstViewport-01224# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
---     feature is not enabled, @firstViewport@ /must/ be @0@
---
--- -   #VUID-vkCmdSetViewport-viewportCount-01225# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
---     feature is not enabled, @viewportCount@ /must/ be @1@
---
--- -   #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/
---     not have
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
---     enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetViewport-pViewports-parameter# @pViewports@ /must/ be
---     a valid pointer to an array of @viewportCount@ valid
---     'Vulkan.Core10.Pipeline.Viewport' structures
---
--- -   #VUID-vkCmdSetViewport-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-vkCmdSetViewport-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetViewport-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdSetViewport-viewportCount-arraylength# @viewportCount@
---     /must/ be greater than @0@
---
--- == 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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'
-cmdSetViewport :: forall io
-                . (MonadIO io)
-               => -- | @commandBuffer@ is the command buffer into which the command will be
-                  -- recorded.
-                  CommandBuffer
-               -> -- | @firstViewport@ is the index of the first viewport whose parameters are
-                  -- updated by the command.
-                  ("firstViewport" ::: Word32)
-               -> -- | @pViewports@ is a pointer to an array of
-                  -- 'Vulkan.Core10.Pipeline.Viewport' structures specifying viewport
-                  -- parameters.
-                  ("viewports" ::: Vector Viewport)
-               -> io ()
-cmdSetViewport commandBuffer firstViewport viewports = liftIO . evalContT $ do
-  let vkCmdSetViewportPtr = pVkCmdSetViewport (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdSetViewportPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewport is null" Nothing Nothing
-  let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr
-  pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)
-  lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport'
-                                                (commandBufferHandle (commandBuffer))
-                                                (firstViewport)
-                                                ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32))
-                                                (pPViewports))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetScissor
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()
-
--- | vkCmdSetScissor - Set scissor rectangles dynamically for a command
--- buffer
---
--- = Description
---
--- The scissor rectangles taken from element i of @pScissors@ replace the
--- current state for the scissor index @firstScissor@ + i, for i in [0,
--- @scissorCount@).
---
--- This command sets the scissor rectangles for subsequent drawing commands
--- when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pScissors@
--- values used to create the currently active pipeline.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdSetScissor-firstScissor-00592# The sum of @firstScissor@
---     and @scissorCount@ /must/ be between @1@ and
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,
---     inclusive
---
--- -   #VUID-vkCmdSetScissor-firstScissor-00593# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
---     feature is not enabled, @firstScissor@ /must/ be @0@
---
--- -   #VUID-vkCmdSetScissor-scissorCount-00594# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
---     feature is not enabled, @scissorCount@ /must/ be @1@
---
--- -   #VUID-vkCmdSetScissor-x-00595# The @x@ and @y@ members of @offset@
---     member of any element of @pScissors@ /must/ be greater than or equal
---     to @0@
---
--- -   #VUID-vkCmdSetScissor-offset-00596# Evaluation of (@offset.x@ +
---     @extent.width@) /must/ not cause a signed integer addition overflow
---     for any element of @pScissors@
---
--- -   #VUID-vkCmdSetScissor-offset-00597# Evaluation of (@offset.y@ +
---     @extent.height@) /must/ not cause a signed integer addition overflow
---     for any element of @pScissors@
---
--- -   #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is
---     recorded in a secondary command buffer with
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
---     enabled, then this function /must/ not be called
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetScissor-pScissors-parameter# @pScissors@ /must/ be a
---     valid pointer to an array of @scissorCount@
---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
---
--- -   #VUID-vkCmdSetScissor-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-vkCmdSetScissor-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetScissor-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdSetScissor-scissorCount-arraylength# @scissorCount@
---     /must/ be greater than @0@
---
--- == 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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.Rect2D'
-cmdSetScissor :: forall io
-               . (MonadIO io)
-              => -- | @commandBuffer@ is the command buffer into which the command will be
-                 -- recorded.
-                 CommandBuffer
-              -> -- | @firstScissor@ is the index of the first scissor whose state is updated
-                 -- by the command.
-                 ("firstScissor" ::: Word32)
-              -> -- | @pScissors@ is a pointer to an array of
-                 -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining scissor
-                 -- rectangles.
-                 ("scissors" ::: Vector Rect2D)
-              -> io ()
-cmdSetScissor commandBuffer firstScissor scissors = liftIO . evalContT $ do
-  let vkCmdSetScissorPtr = pVkCmdSetScissor (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdSetScissorPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissor is null" Nothing Nothing
-  let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr
-  pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)
-  lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor'
-                                               (commandBufferHandle (commandBuffer))
-                                               (firstScissor)
-                                               ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32))
-                                               (pPScissors))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetLineWidth
-  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()
-
--- | vkCmdSetLineWidth - Set line width dynamically for a command buffer
---
--- = Description
---
--- This command sets the line width for subsequent drawing commands when
--- drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@lineWidth@
--- value used to create the currently active pipeline.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdSetLineWidth-lineWidth-00788# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>
---     feature is not enabled, @lineWidth@ /must/ be @1.0@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetLineWidth-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetLineWidth-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-vkCmdSetLineWidth-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetLineWidth-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdSetLineWidth :: forall io
-                 . (MonadIO io)
-                => -- | @commandBuffer@ is the command buffer into which the command will be
-                   -- recorded.
-                   CommandBuffer
-                -> -- | @lineWidth@ is the width of rasterized line segments.
-                   ("lineWidth" ::: Float)
-                -> io ()
-cmdSetLineWidth commandBuffer lineWidth = liftIO $ do
-  let vkCmdSetLineWidthPtr = pVkCmdSetLineWidth (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetLineWidthPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing
-  let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr
-  traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth'
-                                          (commandBufferHandle (commandBuffer))
-                                          (CFloat (lineWidth)))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetDepthBias
-  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()
-
--- | vkCmdSetDepthBias - Set depth bias factors and clamp dynamically for a
--- command buffer
---
--- = Description
---
--- This command sets the depth bias parameters for subsequent drawing
--- commands when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the corresponding
--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasConstantFactor@,
--- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the
--- currently active pipeline.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>
---     feature is not enabled, @depthBiasClamp@ /must/ be @0.0@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetDepthBias-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetDepthBias-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-vkCmdSetDepthBias-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetDepthBias-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdSetDepthBias :: forall io
-                 . (MonadIO io)
-                => -- | @commandBuffer@ is the command buffer into which the command will be
-                   -- recorded.
-                   CommandBuffer
-                -> -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant
-                   -- depth value added to each fragment.
-                   ("depthBiasConstantFactor" ::: Float)
-                -> -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.
-                   ("depthBiasClamp" ::: Float)
-                -> -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope
-                   -- in depth bias calculations.
-                   ("depthBiasSlopeFactor" ::: Float)
-                -> io ()
-cmdSetDepthBias commandBuffer
-                  depthBiasConstantFactor
-                  depthBiasClamp
-                  depthBiasSlopeFactor = liftIO $ do
-  let vkCmdSetDepthBiasPtr = pVkCmdSetDepthBias (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing
-  let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr
-  traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias'
-                                          (commandBufferHandle (commandBuffer))
-                                          (CFloat (depthBiasConstantFactor))
-                                          (CFloat (depthBiasClamp))
-                                          (CFloat (depthBiasSlopeFactor)))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetBlendConstants
-  :: FunPtr (Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()
-
--- | vkCmdSetBlendConstants - Set the values of blend constants
---
--- = Description
---
--- This command sets blend constants for subsequent drawing commands when
--- when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@blendConstants@
--- values used to create the currently active pipeline.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetBlendConstants-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetBlendConstants-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-vkCmdSetBlendConstants-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetBlendConstants-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdSetBlendConstants :: forall io
-                      . (MonadIO io)
-                     => -- | @commandBuffer@ is the command buffer into which the command will be
-                        -- recorded.
-                        CommandBuffer
-                     -> -- | @blendConstants@ is a pointer to an array of four values specifying the
-                        -- Rc, Gc, Bc, and Ac components of the blend constant color used in
-                        -- blending, depending on the
-                        -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.
-                        ("blendConstants" ::: (Float, Float, Float, Float))
-                     -> io ()
-cmdSetBlendConstants commandBuffer blendConstants = liftIO . evalContT $ do
-  let vkCmdSetBlendConstantsPtr = pVkCmdSetBlendConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdSetBlendConstantsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetBlendConstants is null" Nothing Nothing
-  let vkCmdSetBlendConstants' = mkVkCmdSetBlendConstants vkCmdSetBlendConstantsPtr
-  pBlendConstants <- ContT $ allocaBytes @(FixedArray 4 CFloat) 16
-  let pBlendConstants' = lowerArrayPtr pBlendConstants
-  lift $ case (blendConstants) of
-    (e0, e1, e2, e3) -> do
-      poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))
-      poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
-      poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
-      poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
-  lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants'
-                                                      (commandBufferHandle (commandBuffer))
-                                                      (pBlendConstants))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetDepthBounds
-  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()
-
--- | vkCmdSetDepthBounds - Set depth bounds range dynamically for a command
--- buffer
---
--- = Description
---
--- This command sets the depth bounds range for subsequent drawing commands
--- when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@minDepthBounds@
--- and
--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@maxDepthBounds@
--- values used to create the currently active pipeline.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdSetDepthBounds-minDepthBounds-00600# If the
---     @VK_EXT_depth_range_unrestricted@ extension is not enabled
---     @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive
---
--- -   #VUID-vkCmdSetDepthBounds-maxDepthBounds-00601# If the
---     @VK_EXT_depth_range_unrestricted@ extension is not enabled
---     @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetDepthBounds-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetDepthBounds-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-vkCmdSetDepthBounds-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetDepthBounds-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdSetDepthBounds :: forall io
-                   . (MonadIO io)
-                  => -- | @commandBuffer@ is the command buffer into which the command will be
-                     -- recorded.
-                     CommandBuffer
-                  -> -- | @minDepthBounds@ is the minimum depth bound.
-                     ("minDepthBounds" ::: Float)
-                  -> -- | @maxDepthBounds@ is the maximum depth bound.
-                     ("maxDepthBounds" ::: Float)
-                  -> io ()
-cmdSetDepthBounds commandBuffer minDepthBounds maxDepthBounds = liftIO $ do
-  let vkCmdSetDepthBoundsPtr = pVkCmdSetDepthBounds (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing
-  let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr
-  traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds'
-                                            (commandBufferHandle (commandBuffer))
-                                            (CFloat (minDepthBounds))
-                                            (CFloat (maxDepthBounds)))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetStencilCompareMask
-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()
-
--- | vkCmdSetStencilCompareMask - Set stencil compare mask dynamically for a
--- command buffer
---
--- = Description
---
--- This command sets the stencil compare mask for subsequent drawing
--- commands when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
--- set in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.StencilOpState'::@compareMask@ value used to
--- create the currently active pipeline, for both front and back faces.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetStencilCompareMask-faceMask-parameter# @faceMask@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values
---
--- -   #VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask#
---     @faceMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdSetStencilCompareMask-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-vkCmdSetStencilCompareMask-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetStencilCompareMask-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'
-cmdSetStencilCompareMask :: forall io
-                          . (MonadIO io)
-                         => -- | @commandBuffer@ is the command buffer into which the command will be
-                            -- recorded.
-                            CommandBuffer
-                         -> -- | @faceMask@ is a bitmask of
-                            -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying
-                            -- the set of stencil state for which to update the compare mask.
-                            ("faceMask" ::: StencilFaceFlags)
-                         -> -- | @compareMask@ is the new value to use as the stencil compare mask.
-                            ("compareMask" ::: Word32)
-                         -> io ()
-cmdSetStencilCompareMask commandBuffer faceMask compareMask = liftIO $ do
-  let vkCmdSetStencilCompareMaskPtr = pVkCmdSetStencilCompareMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing
-  let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr
-  traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask'
-                                                   (commandBufferHandle (commandBuffer))
-                                                   (faceMask)
-                                                   (compareMask))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetStencilWriteMask
-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()
-
--- | vkCmdSetStencilWriteMask - Set stencil write mask dynamically for a
--- command buffer
---
--- = Description
---
--- This command sets the stencil write mask for subsequent drawing commands
--- when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set
--- in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the @writeMask@ value used to
--- create the currently active pipeline, for both
--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@front@
--- and 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@back@
--- faces.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetStencilWriteMask-faceMask-parameter# @faceMask@ /must/
---     be a valid combination of
---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values
---
--- -   #VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask# @faceMask@
---     /must/ not be @0@
---
--- -   #VUID-vkCmdSetStencilWriteMask-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-vkCmdSetStencilWriteMask-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetStencilWriteMask-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'
-cmdSetStencilWriteMask :: forall io
-                        . (MonadIO io)
-                       => -- | @commandBuffer@ is the command buffer into which the command will be
-                          -- recorded.
-                          CommandBuffer
-                       -> -- | @faceMask@ is a bitmask of
-                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying
-                          -- the set of stencil state for which to update the write mask, as
-                          -- described above for 'cmdSetStencilCompareMask'.
-                          ("faceMask" ::: StencilFaceFlags)
-                       -> -- | @writeMask@ is the new value to use as the stencil write mask.
-                          ("writeMask" ::: Word32)
-                       -> io ()
-cmdSetStencilWriteMask commandBuffer faceMask writeMask = liftIO $ do
-  let vkCmdSetStencilWriteMaskPtr = pVkCmdSetStencilWriteMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing
-  let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr
-  traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask'
-                                                 (commandBufferHandle (commandBuffer))
-                                                 (faceMask)
-                                                 (writeMask))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetStencilReference
-  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()
-
--- | vkCmdSetStencilReference - Set stencil reference value dynamically for a
--- command buffer
---
--- = Description
---
--- This command sets the stencil reference value for subsequent drawing
--- commands when drawing using
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
--- or when the graphics pipeline is created with
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' set
--- in
--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
--- Otherwise, this state is specified by the
--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@reference@
--- value used to create the currently active pipeline, for both front and
--- back faces.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetStencilReference-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetStencilReference-faceMask-parameter# @faceMask@ /must/
---     be a valid combination of
---     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values
---
--- -   #VUID-vkCmdSetStencilReference-faceMask-requiredbitmask# @faceMask@
---     /must/ not be @0@
---
--- -   #VUID-vkCmdSetStencilReference-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-vkCmdSetStencilReference-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdSetStencilReference-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'
-cmdSetStencilReference :: forall io
-                        . (MonadIO io)
-                       => -- | @commandBuffer@ is the command buffer into which the command will be
-                          -- recorded.
-                          CommandBuffer
-                       -> -- | @faceMask@ is a bitmask of
-                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying
-                          -- the set of stencil state for which to update the reference value, as
-                          -- described above for 'cmdSetStencilCompareMask'.
-                          ("faceMask" ::: StencilFaceFlags)
-                       -> -- | @reference@ is the new value to use as the stencil reference value.
-                          ("reference" ::: Word32)
-                       -> io ()
-cmdSetStencilReference commandBuffer faceMask reference = liftIO $ do
-  let vkCmdSetStencilReferencePtr = pVkCmdSetStencilReference (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing
-  let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr
-  traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference'
-                                                 (commandBufferHandle (commandBuffer))
-                                                 (faceMask)
-                                                 (reference))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBindDescriptorSets
-  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()
-
--- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer
---
--- = Description
---
--- 'cmdBindDescriptorSets' binds descriptor sets
--- @pDescriptorSets@[0..@descriptorSetCount@-1] to set numbers
--- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>
--- set by @pipelineBindPoint@. Any bindings that were previously applied
--- via these sets , or calls to
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT'
--- or
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',
--- are no longer valid.
---
--- Once bound, a descriptor set affects rendering of subsequent commands
--- that interact with the given pipeline type in the command buffer until
--- either a different set is bound to the same set number, or the set is
--- disturbed as described in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.
---
--- A compatible descriptor set /must/ be bound for all set numbers that any
--- shaders in a pipeline access, at the time that a drawing or dispatching
--- command is recorded to execute using that pipeline. However, if none of
--- the shaders in a pipeline statically use any bindings with a particular
--- set number, then no descriptor set need be bound for that set number,
--- even if the pipeline layout includes a non-trivial descriptor set layout
--- for that set number.
---
--- When consuming a descriptor, a descriptor is considered valid if the
--- descriptor is not undefined as described by
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptor-set-initial-state descriptor set allocation>.
--- If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
--- feature is enabled, a null descriptor is also considered valid. A
--- descriptor that was disturbed by
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>,
--- or was never bound by 'cmdBindDescriptorSets' is not considered valid.
--- If a pipeline accesses a descriptor either statically or dynamically
--- depending on the
--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits',
--- the consuming descriptor type in the pipeline /must/ match the
--- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' in
--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo' for the
--- descriptor to be considered valid. If a descriptor is a mutable
--- descriptor, the consuming descriptor type in the pipeline /must/ match
--- the active descriptor type for the descriptor to be considered valid.
---
--- Note
---
--- Further validation may be carried out beyond validation for descriptor
--- types, e.g.
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-input-validation Texel Input Validation>.
---
--- If any of the sets being bound include dynamic uniform or storage
--- buffers, then @pDynamicOffsets@ includes one element for each array
--- element in each dynamic descriptor type binding in each set. Values are
--- taken from @pDynamicOffsets@ in an order such that all entries for set N
--- come before set N+1; within a set, entries are ordered by the binding
--- numbers in the descriptor set layouts; and within a binding array,
--- elements are in order. @dynamicOffsetCount@ /must/ equal the total
--- number of dynamic descriptors in the sets being bound.
---
--- The effective offset used for dynamic uniform and storage buffer
--- bindings is the sum of the relative offset taken from @pDynamicOffsets@,
--- and the base address of the buffer plus base offset in the descriptor
--- set. The range of the dynamic uniform and storage buffer bindings is the
--- buffer range as specified in the descriptor set.
---
--- Each of the @pDescriptorSets@ /must/ be compatible with the pipeline
--- layout specified by @layout@. The layout used to program the bindings
--- /must/ also be compatible with the pipeline used in subsequent
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>
--- with that pipeline type, as defined in the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>
--- section.
---
--- The descriptor set contents bound by a call to 'cmdBindDescriptorSets'
--- /may/ be consumed at the following times:
---
--- -   For descriptor bindings created with the
---     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'
---     bit set, the contents /may/ be consumed when the command buffer is
---     submitted to a queue, or during shader execution of the resulting
---     draws and dispatches, or any time in between. Otherwise,
---
--- -   during host execution of the command, or during shader execution of
---     the resulting draws and dispatches, or any time in between.
---
--- Thus, the contents of a descriptor set binding /must/ not be altered
--- (overwritten by an update command, or freed) between the first point in
--- time that it /may/ be consumed, and when the command completes executing
--- on the queue.
---
--- The contents of @pDynamicOffsets@ are consumed immediately during
--- execution of 'cmdBindDescriptorSets'. Once all pending uses have
--- completed, it is legal to update and reuse a descriptor set.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358# Each element of
---     @pDescriptorSets@ /must/ have been allocated with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' that matches (is the
---     same as, or identically defined as) the
---     'Vulkan.Core10.Handles.DescriptorSetLayout' at set /n/ in @layout@,
---     where /n/ is the sum of @firstSet@ and the index into
---     @pDescriptorSets@
---
--- -   #VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359#
---     @dynamicOffsetCount@ /must/ be equal to the total number of dynamic
---     descriptors in @pDescriptorSets@
---
--- -   #VUID-vkCmdBindDescriptorSets-firstSet-00360# The sum of @firstSet@
---     and @descriptorSetCount@ /must/ be less than or equal to
---     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@
---     provided when @layout@ was created
---
--- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#
---     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s
---     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family
---
--- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971# Each element of
---     @pDynamicOffsets@ which corresponds to a descriptor binding with
---     type
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
---     /must/ be a multiple of
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minUniformBufferOffsetAlignment@
---
--- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972# Each element of
---     @pDynamicOffsets@ which corresponds to a descriptor binding with
---     type
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
---     /must/ be a multiple of
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minStorageBufferOffsetAlignment@
---
--- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each
---     dynamic uniform or storage buffer binding in @pDescriptorSets@, the
---     sum of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dynamic-effective-offset effective offset>
---     and the range of the binding /must/ be less than or equal to the
---     size of the buffer
---
--- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715# For each
---     dynamic uniform or storage buffer binding in @pDescriptorSets@, if
---     the range was set with 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then
---     @pDynamicOffsets@ which corresponds to the descriptor binding /must/
---     be 0
---
--- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of
---     @pDescriptorSets@ /must/ not have been allocated from a
---     'Vulkan.Core10.Handles.DescriptorPool' with the
---     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT'
---     flag set
---
--- -   #VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754# If
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
---     is not enabled, each element of @pDescriptorSets@ /must/ be a valid
---     'Vulkan.Core10.Handles.DescriptorSet'
---
--- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010# Each element of
---     @pDescriptorSets@ /must/ have been allocated with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' which was not created
---     with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter#
---     @pipelineBindPoint@ /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
---
--- -   #VUID-vkCmdBindDescriptorSets-layout-parameter# @layout@ /must/ be a
---     valid 'Vulkan.Core10.Handles.PipelineLayout' handle
---
--- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter#
---     @pDescriptorSets@ /must/ be a valid pointer to an array of
---     @descriptorSetCount@ valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---     'Vulkan.Core10.Handles.DescriptorSet' handles
---
--- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter# If
---     @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a valid
---     pointer to an array of @dynamicOffsetCount@ @uint32_t@ values
---
--- -   #VUID-vkCmdBindDescriptorSets-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-vkCmdBindDescriptorSets-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdBindDescriptorSets-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#
---     @descriptorSetCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,
---     @layout@, and the elements of @pDescriptorSets@ that are valid
---     handles of non-ignored parameters /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Handles.DescriptorSet',
--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
--- 'Vulkan.Core10.Handles.PipelineLayout'
-cmdBindDescriptorSets :: forall io
-                       . (MonadIO io)
-                      => -- | @commandBuffer@ is the command buffer that the descriptor sets will be
-                         -- bound to.
-                         CommandBuffer
-                      -> -- | @pipelineBindPoint@ is a
-                         -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the
-                         -- type of the pipeline that will use the descriptors. There is a separate
-                         -- set of bind points for each pipeline type, so binding one does not
-                         -- disturb the others.
-                         PipelineBindPoint
-                      -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to
-                         -- program the bindings.
-                         PipelineLayout
-                      -> -- | @firstSet@ is the set number of the first descriptor set to be bound.
-                         ("firstSet" ::: Word32)
-                      -> -- | @pDescriptorSets@ is a pointer to an array of handles to
-                         -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor
-                         -- sets to bind to.
-                         ("descriptorSets" ::: Vector DescriptorSet)
-                      -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values
-                         -- specifying dynamic offsets.
-                         ("dynamicOffsets" ::: Vector Word32)
-                      -> io ()
-cmdBindDescriptorSets commandBuffer
-                        pipelineBindPoint
-                        layout
-                        firstSet
-                        descriptorSets
-                        dynamicOffsets = liftIO . evalContT $ do
-  let vkCmdBindDescriptorSetsPtr = pVkCmdBindDescriptorSets (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdBindDescriptorSetsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorSets is null" Nothing Nothing
-  let vkCmdBindDescriptorSets' = mkVkCmdBindDescriptorSets vkCmdBindDescriptorSetsPtr
-  pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)
-  pPDynamicOffsets <- ContT $ allocaBytes @Word32 ((Data.Vector.length (dynamicOffsets)) * 4)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)
-  lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets'
-                                                       (commandBufferHandle (commandBuffer))
-                                                       (pipelineBindPoint)
-                                                       (layout)
-                                                       (firstSet)
-                                                       ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32))
-                                                       (pPDescriptorSets)
-                                                       ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32))
-                                                       (pPDynamicOffsets))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBindIndexBuffer
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()
-
--- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBindIndexBuffer-offset-00431# @offset@ /must/ be less
---     than the size of @buffer@
---
--- -   #VUID-vkCmdBindIndexBuffer-offset-00432# The sum of @offset@ and the
---     address of the range of 'Vulkan.Core10.Handles.DeviceMemory' object
---     that is backing @buffer@, /must/ be a multiple of the type indicated
---     by @indexType@
---
--- -   #VUID-vkCmdBindIndexBuffer-buffer-00433# @buffer@ /must/ have been
---     created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'
---     flag
---
--- -   #VUID-vkCmdBindIndexBuffer-buffer-00434# If @buffer@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdBindIndexBuffer-indexType-02507# @indexType@ /must/ not
---     be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'
---
--- -   #VUID-vkCmdBindIndexBuffer-indexType-02765# If @indexType@ is
---     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindIndexBuffer-buffer-parameter# @buffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdBindIndexBuffer-indexType-parameter# @indexType@ /must/
---     be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value
---
--- -   #VUID-vkCmdBindIndexBuffer-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-vkCmdBindIndexBuffer-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBindIndexBuffer-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdBindIndexBuffer-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core10.Enums.IndexType.IndexType'
-cmdBindIndexBuffer :: forall io
-                    . (MonadIO io)
-                   => -- | @commandBuffer@ is the command buffer into which the command is
-                      -- recorded.
-                      CommandBuffer
-                   -> -- | @buffer@ is the buffer being bound.
-                      Buffer
-                   -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index
-                      -- buffer address calculations.
-                      ("offset" ::: DeviceSize)
-                   -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value
-                      -- specifying the size of the indices.
-                      IndexType
-                   -> io ()
-cmdBindIndexBuffer commandBuffer buffer offset indexType = liftIO $ do
-  let vkCmdBindIndexBufferPtr = pVkCmdBindIndexBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing
-  let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr
-  traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer'
-                                             (commandBufferHandle (commandBuffer))
-                                             (buffer)
-                                             (offset)
-                                             (indexType))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBindVertexBuffers
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()
-
--- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer
---
--- = Description
---
--- The values taken from elements i of @pBuffers@ and @pOffsets@ replace
--- the current state for the vertex input binding @firstBinding@ + i, for i
--- in [0, @bindingCount@). The vertex input binding is updated to start at
--- the offset indicated by @pOffsets@[i] from the start of the buffer
--- @pBuffers@[i]. All vertex input attributes that use each of these
--- bindings will use these updated addresses in their address calculations
--- for subsequent drawing commands. If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
--- feature is enabled, elements of @pBuffers@ /can/ be
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the
--- vertex shader. If a vertex input attribute is bound to a vertex input
--- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values
--- taken from memory are considered to be zero, and missing G, B, or A
--- components are
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBindVertexBuffers-firstBinding-00624# @firstBinding@
---     /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
---
--- -   #VUID-vkCmdBindVertexBuffers-firstBinding-00625# The sum of
---     @firstBinding@ and @bindingCount@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
---
--- -   #VUID-vkCmdBindVertexBuffers-pOffsets-00626# All elements of
---     @pOffsets@ /must/ be less than the size of the corresponding element
---     in @pBuffers@
---
--- -   #VUID-vkCmdBindVertexBuffers-pBuffers-00627# All elements of
---     @pBuffers@ /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'
---     flag
---
--- -   #VUID-vkCmdBindVertexBuffers-pBuffers-00628# Each element of
---     @pBuffers@ that is non-sparse /must/ be bound completely and
---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdBindVertexBuffers-pBuffers-04001# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all elements of @pBuffers@ /must/ not be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdBindVertexBuffers-pBuffers-04002# If an element of
---     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
---     corresponding element of @pOffsets@ /must/ be zero
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindVertexBuffers-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindVertexBuffers-pBuffers-parameter# @pBuffers@ /must/
---     be a valid pointer to an array of @bindingCount@ valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---     'Vulkan.Core10.Handles.Buffer' handles
---
--- -   #VUID-vkCmdBindVertexBuffers-pOffsets-parameter# @pOffsets@ /must/
---     be a valid pointer to an array of @bindingCount@
---     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
---
--- -   #VUID-vkCmdBindVertexBuffers-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-vkCmdBindVertexBuffers-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBindVertexBuffers-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdBindVertexBuffers-bindingCount-arraylength#
---     @bindingCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCmdBindVertexBuffers-commonparent# Both of @commandBuffer@,
---     and the elements of @pBuffers@ that are valid handles of non-ignored
---     parameters /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdBindVertexBuffers :: forall io
-                      . (MonadIO io)
-                     => -- | @commandBuffer@ is the command buffer into which the command is
-                        -- recorded.
-                        CommandBuffer
-                     -> -- | @firstBinding@ is the index of the first vertex input binding whose
-                        -- state is updated by the command.
-                        ("firstBinding" ::: Word32)
-                     -> -- | @pBuffers@ is a pointer to an array of buffer handles.
-                        ("buffers" ::: Vector Buffer)
-                     -> -- | @pOffsets@ is a pointer to an array of buffer offsets.
-                        ("offsets" ::: Vector DeviceSize)
-                     -> io ()
-cmdBindVertexBuffers commandBuffer
-                       firstBinding
-                       buffers
-                       offsets = liftIO . evalContT $ do
-  let vkCmdBindVertexBuffersPtr = pVkCmdBindVertexBuffers (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdBindVertexBuffersPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers is null" Nothing Nothing
-  let vkCmdBindVertexBuffers' = mkVkCmdBindVertexBuffers vkCmdBindVertexBuffersPtr
-  let pBuffersLength = Data.Vector.length $ (buffers)
-  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $
-    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing
-  pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)
-  pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)
-  lift $ traceAroundEvent "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers'
-                                                      (commandBufferHandle (commandBuffer))
-                                                      (firstBinding)
-                                                      ((fromIntegral pBuffersLength :: Word32))
-                                                      (pPBuffers)
-                                                      (pPOffsets))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDraw
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDraw - Draw primitives
---
--- = Description
---
--- When the command is executed, primitives are assembled using the current
--- primitive topology and @vertexCount@ consecutive vertex indices with the
--- first @vertexIndex@ value equal to @firstVertex@. The primitives are
--- drawn @instanceCount@ times with @instanceIndex@ starting with
--- @firstInstance@ and increasing sequentially for each instance. The
--- assembled primitives execute the bound graphics pipeline.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08600# For each set /n/ that is statically used
---     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
---     point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDraw-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDraw-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor
---     set, specified via '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-vkCmdDraw-None-08115# If the descriptors used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     were specified via 'cmdBindDescriptorSets', the bound
---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08604# Descriptors in bound descriptor buffers,
---     specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08605# If a descriptor is dynamically used with
---     a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDraw-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDraw-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDraw-None-08608# If a pipeline is bound to the pipeline
---     bind point used by this command, 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-vkCmdDraw-None-08609# If the 'Vulkan.Core10.Handles.Pipeline'
---     object bound to the pipeline bind point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDraw-None-08610# If the 'Vulkan.Core10.Handles.Pipeline'
---     object bound to the pipeline bind point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDraw-None-08611# If the 'Vulkan.Core10.Handles.Pipeline'
---     object bound to the pipeline bind point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDraw-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-vkCmdDraw-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDraw-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-vkCmdDraw-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDraw-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDraw-None-08615# If the 'Vulkan.Core10.Handles.Pipeline'
---     object bound to the pipeline bind point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDraw-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07748# If any shader statically accesses an
---     input attachment, a valid descriptor /must/ be bound to the pipeline
---     via a descriptor set
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07831# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then 'cmdSetViewport' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-07832# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then 'cmdSetScissor' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-07833# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then 'cmdSetLineWidth' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08617# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'cmdSetLineWidth' /must/ have been called in the current command
---     buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08618# If a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08619# If a shader object that outputs line
---     primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-07834# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then 'cmdSetDepthBias' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08620# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDraw-None-07835# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08621# If a shader object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'cmdSetBlendConstants' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-07836# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then 'cmdSetDepthBounds' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08622# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDraw-None-07837# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDraw-None-08623# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07838# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08624# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07839# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then 'cmdSetStencilReference' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDraw-None-08625# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08626# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07934# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDraw-None-07840# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08627# If a shader object is bound to any
---     graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07841# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08628# If a shader object is bound to any
---     graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07843# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08629# If a shader object is bound to any
---     graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07844# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08630# If a shader object is bound to any
---     graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07845# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08631# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07846# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08632# If a shader object is bound to any
---     graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07847# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08633# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07848# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08634# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08635# If a shader object is bound to any
---     graphics stage, 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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08636# If a shader object is bound to any
---     graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is
---     enabled on the device, 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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08637# If a shader object is bound to any
---     graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07878# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07879# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08638# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08639# If a shader object is bound to any
---     graphics stage, 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-vkCmdDraw-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-vkCmdDraw-None-08640# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDraw-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-vkCmdDraw-None-08641# If a shader object is bound to any
---     graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDraw-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-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDraw-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-vkCmdDraw-None-08643# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDraw-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDraw-None-08644# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-07880# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08648# If the @VK_EXT_discard_rectangles@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07881# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08649# If the @VK_EXT_discard_rectangles@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDraw-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
---     @rasterizationSamples@ for 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-vkCmdDraw-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
---     @rasterizationSamples@ for 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-vkCmdDraw-pNext-07935# If this command has been called inside
---     a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08651# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08652# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08653# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08654# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08657# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08658# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08659# If a shader object is bound to any
---     graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08664# If the @VK_EXT_sample_locations@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08665# If the @VK_EXT_provoking_vertex@
---     extension is enabled, and a shader object is bound to the vertex
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08666# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08667# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object is bound to the vertex
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08668# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object that outputs line
---     primitives is bound to the tessellation evaluation or geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08669# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08670# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object is bound to the vertex
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08671# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object that outputs line
---     primitives is bound to the tessellation evaluation or geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-07849# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-08672# If the @VK_EXT_line_rasterization@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDraw-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDraw-None-08674# If the @VK_NV_clip_space_w_scaling@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08675# If the @VK_NV_viewport_swizzle@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08678# If the @VK_NV_framebuffer_mixed_samples@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08679# If the @VK_NV_framebuffer_mixed_samples@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08680# If the @VK_NV_framebuffer_mixed_samples@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-sampleLocationsEnable-07936# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDraw-sampleLocationsEnable-07937# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDraw-sampleLocationsEnable-07938# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07850# If dynamic state was inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDraw-None-08684# If there is no bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDraw-None-08685# If there is no bound graphics pipeline,
---     and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDraw-None-08686# If there is no bound graphics pipeline,
---     and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDraw-None-08687# If there is no bound graphics pipeline,
---     and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDraw-None-08688# If there is no bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDraw-None-08689# If there is no bound graphics pipeline,
---     and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDraw-None-08690# If there is no bound graphics pipeline,
---     and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDraw-None-08693# If there is no bound graphics pipeline,
---     and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDraw-None-08694# If there is no bound graphics pipeline,
---     and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDraw-None-08695# If there is no bound graphics pipeline,
---     and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDraw-None-08696# If there is no bound graphics pipeline,
---     and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDraw-None-08698# If any graphics shader is bound which
---     was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDraw-None-08699# If any graphics shader is bound which
---     was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDraw-pDynamicStates-08715# If the bound graphics pipeline
---     state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDraw-pDynamicStates-08716# If the bound graphics pipeline
---     state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
---
--- -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, any resource written to by the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command /must/ not be an unprotected resource
---
--- -   #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, pipeline stages other than the framebuffer-space
---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
---     bound to the pipeline bind point used by this command /must/ not
---     write to any resource
---
--- -   #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of
---     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
---     point used by this command uses the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
---     capability, then @commandBuffer@ /must/ not be a protected command
---     buffer
---
--- -   #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDraw-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any
---     attribute data fetched /must/ be entirely contained within the
---     corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDraw-None-07842# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was
---     created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was
---     created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDraw-Input-07939# If the bound graphics pipeline state
---     was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was
---     created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDraw-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDraw-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-vkCmdDraw-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDraw-renderpass# This command /must/ only be called
---     inside of a render pass instance
---
--- -   #VUID-vkCmdDraw-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_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdDraw :: forall io
-         . (MonadIO io)
-        => -- | @commandBuffer@ is the command buffer into which the command is
-           -- recorded.
-           CommandBuffer
-        -> -- | @vertexCount@ is the number of vertices to draw.
-           ("vertexCount" ::: Word32)
-        -> -- | @instanceCount@ is the number of instances to draw.
-           ("instanceCount" ::: Word32)
-        -> -- | @firstVertex@ is the index of the first vertex to draw.
-           ("firstVertex" ::: Word32)
-        -> -- | @firstInstance@ is the instance ID of the first instance to draw.
-           ("firstInstance" ::: Word32)
-        -> io ()
-cmdDraw commandBuffer
-          vertexCount
-          instanceCount
-          firstVertex
-          firstInstance = liftIO $ do
-  let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing
-  let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr
-  traceAroundEvent "vkCmdDraw" (vkCmdDraw'
-                                  (commandBufferHandle (commandBuffer))
-                                  (vertexCount)
-                                  (instanceCount)
-                                  (firstVertex)
-                                  (firstInstance))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawIndexed
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()
-
--- | vkCmdDrawIndexed - Draw primitives with indexed vertices
---
--- = Description
---
--- When the command is executed, primitives are assembled using the current
--- primitive topology and @indexCount@ vertices whose indices are retrieved
--- from the index buffer. The index buffer is treated as an array of
--- tightly packed unsigned integers of size defined by the
--- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was
--- bound.
---
--- The first vertex index is at an offset of @firstIndex@ × @indexSize@ +
--- @offset@ within the bound index buffer, where @offset@ is the offset
--- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of
--- the type specified by @indexType@. Subsequent index values are retrieved
--- from consecutive locations in the index buffer. Indices are first
--- compared to the primitive restart value, then zero extended to 32 bits
--- (if the @indexType@ is
--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or
--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have
--- @vertexOffset@ added to them, before being supplied as the @vertexIndex@
--- value.
---
--- The primitives are drawn @instanceCount@ times with @instanceIndex@
--- starting with @firstInstance@ and increasing sequentially for each
--- instance. The assembled primitives execute the bound graphics pipeline.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexed-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound
---     descriptor set, specified via '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-vkCmdDrawIndexed-None-08115# If the descriptors used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     were specified via 'cmdBindDescriptorSets', the bound
---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08604# Descriptors in bound descriptor
---     buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08605# If a descriptor is dynamically
---     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawIndexed-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexed-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexed-None-08608# If a pipeline is bound to the
---     pipeline bind point used by this command, 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-vkCmdDrawIndexed-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexed-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexed-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawIndexed-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawIndexed-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexed-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07748# If any shader statically accesses
---     an input attachment, a valid descriptor /must/ be bound to the
---     pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07831# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then 'cmdSetViewport' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07832# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then 'cmdSetScissor' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07833# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then 'cmdSetLineWidth' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08617# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'cmdSetLineWidth' /must/ have been called in the current command
---     buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08618# If a shader object is bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08619# If a shader object that outputs
---     line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07834# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then 'cmdSetDepthBias' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08620# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexed-None-07835# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08621# If a shader object is bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'cmdSetBlendConstants' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07836# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then 'cmdSetDepthBounds' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08622# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexed-None-07837# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexed-None-08623# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07838# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08624# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07839# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then 'cmdSetStencilReference' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08625# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08626# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawIndexed-None-07840# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08627# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07841# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08628# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07843# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08629# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07844# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08630# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07845# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08631# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07846# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08632# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07847# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08633# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07848# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08634# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08635# If a shader object is bound to
---     any graphics stage, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08636# If a shader object is bound to
---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
---     is enabled on the device, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08637# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07878# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07879# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08638# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08639# If a shader object is bound to
---     any graphics stage, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08640# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08641# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08643# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndexed-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndexed-None-08644# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07880# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07881# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawIndexed-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndexed-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndexed-pNext-07935# If this command has been called
---     inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08651# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08652# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08653# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08654# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08657# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08658# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08659# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08664# If the @VK_EXT_sample_locations@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08665# If the @VK_EXT_provoking_vertex@
---     extension is enabled, and a shader object is bound to the vertex
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-07849# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndexed-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndexed-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08675# If the @VK_NV_viewport_swizzle@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-sampleLocationsEnable-07936# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07850# If dynamic state was inherited
---     from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexed-None-08684# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08685# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08686# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08687# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08688# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08689# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08690# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexed-None-08693# If there is no bound graphics
---     pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndexed-None-08694# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexed-None-08695# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexed-None-08696# If there is no bound graphics
---     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexed-None-08698# If any graphics shader is bound
---     which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawIndexed-None-08699# If any graphics shader is bound
---     which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndexed-pDynamicStates-08715# If the bound graphics
---     pipeline state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndexed-pDynamicStates-08716# If the bound graphics
---     pipeline state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
---
--- -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, any resource written to by the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command /must/ not be an unprotected resource
---
--- -   #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, pipeline stages other than the framebuffer-space
---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
---     bound to the pipeline bind point used by this command /must/ not
---     write to any resource
---
--- -   #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader
---     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline
---     bind point used by this command uses the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
---     capability, then @commandBuffer@ /must/ not be a protected command
---     buffer
---
--- -   #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings
---     accessed via vertex input variables declared in the vertex shader
---     entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawIndexed-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawIndexed-None-07842# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline
---     was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics
---     pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndexed-Input-07939# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexed-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound
---
--- -   #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
---     @indexType@, where the index buffer, @indexType@, and @offset@ are
---     specified via 'cmdBindIndexBuffer'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawIndexed-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_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdDrawIndexed :: forall io
-                . (MonadIO io)
-               => -- | @commandBuffer@ is the command buffer into which the command is
-                  -- recorded.
-                  CommandBuffer
-               -> -- | @indexCount@ is the number of vertices to draw.
-                  ("indexCount" ::: Word32)
-               -> -- | @instanceCount@ is the number of instances to draw.
-                  ("instanceCount" ::: Word32)
-               -> -- | @firstIndex@ is the base index within the index buffer.
-                  ("firstIndex" ::: Word32)
-               -> -- | @vertexOffset@ is the value added to the vertex index before indexing
-                  -- into the vertex buffer.
-                  ("vertexOffset" ::: Int32)
-               -> -- | @firstInstance@ is the instance ID of the first instance to draw.
-                  ("firstInstance" ::: Word32)
-               -> io ()
-cmdDrawIndexed commandBuffer
-                 indexCount
-                 instanceCount
-                 firstIndex
-                 vertexOffset
-                 firstInstance = liftIO $ do
-  let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawIndexedPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing
-  let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr
-  traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed'
-                                         (commandBufferHandle (commandBuffer))
-                                         (indexCount)
-                                         (instanceCount)
-                                         (firstIndex)
-                                         (vertexOffset)
-                                         (firstInstance))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawIndirect
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawIndirect - Draw primitives with indirect parameters
---
--- = Description
---
--- 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the
--- parameters are read by the device from a buffer during execution.
--- @drawCount@ draws are executed by the command, with parameters taken
--- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for
--- each successive draw. The parameters of each draw are encoded in an
--- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If
--- @drawCount@ is less than or equal to one, @stride@ is ignored.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirect-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound
---     descriptor set, specified via '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-vkCmdDrawIndirect-None-08115# If the descriptors used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     were specified via 'cmdBindDescriptorSets', the bound
---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08604# Descriptors in bound descriptor
---     buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08605# If a descriptor is dynamically
---     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawIndirect-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndirect-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawIndirect-None-08608# If a pipeline is bound to the
---     pipeline bind point used by this command, 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-vkCmdDrawIndirect-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirect-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirect-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawIndirect-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawIndirect-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirect-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07831# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then 'cmdSetViewport' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07832# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then 'cmdSetScissor' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07833# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then 'cmdSetLineWidth' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08617# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'cmdSetLineWidth' /must/ have been called in the current command
---     buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08618# If a shader object is bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08619# If a shader object that outputs
---     line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07834# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then 'cmdSetDepthBias' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08620# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirect-None-07835# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08621# If a shader object is bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'cmdSetBlendConstants' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07836# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then 'cmdSetDepthBounds' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08622# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirect-None-07837# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirect-None-08623# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07838# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08624# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07839# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then 'cmdSetStencilReference' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08625# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08626# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawIndirect-None-07840# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08627# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07841# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08628# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07843# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08629# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07844# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08630# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07845# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08631# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07846# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08632# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07847# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08633# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07848# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08634# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08635# If a shader object is bound to
---     any graphics stage, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08636# If a shader object is bound to
---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
---     is enabled on the device, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08637# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07878# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07879# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08638# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08639# If a shader object is bound to
---     any graphics stage, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08640# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08641# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08643# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndirect-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndirect-None-08644# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07880# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07881# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawIndirect-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndirect-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndirect-pNext-07935# If this command has been called
---     inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08651# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08652# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08653# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08654# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08657# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08658# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08659# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08664# If the @VK_EXT_sample_locations@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08665# If the @VK_EXT_provoking_vertex@
---     extension is enabled, and a shader object is bound to the vertex
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-07849# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndirect-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndirect-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08675# If the @VK_NV_viewport_swizzle@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-sampleLocationsEnable-07936# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07850# If dynamic state was inherited
---     from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirect-None-08684# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08685# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08686# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08687# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08688# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08689# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08690# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirect-None-08693# If there is no bound graphics
---     pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndirect-None-08694# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndirect-None-08695# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndirect-None-08696# If there is no bound graphics
---     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndirect-None-08698# If any graphics shader is bound
---     which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawIndirect-None-08699# If any graphics shader is bound
---     which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndirect-pDynamicStates-08715# If the bound graphics
---     pipeline state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndirect-pDynamicStates-08716# If the bound graphics
---     pipeline state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
---
--- -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings
---     accessed via vertex input variables declared in the vertex shader
---     entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawIndirect-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawIndirect-None-07842# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline
---     was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics
---     pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndirect-Input-07939# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirect-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then
---     it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been
---     created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple
---     of @4@
---
--- -   #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/
---     not be a protected command buffer
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less
---     than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater
---     than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater
---     than or equal to
---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')
---
--- -   #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to
---     @1@, (@offset@ +
---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be
---     less than or equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater
---     than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be
---     less than or equal to the size of @buffer@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawIndirect-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawIndirect-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_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawIndirect :: 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)
-                -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
-                   ("drawCount" ::: Word32)
-                -> -- | @stride@ is the byte stride between successive sets of draw parameters.
-                   ("stride" ::: Word32)
-                -> io ()
-cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do
-  let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawIndirectPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing
-  let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr
-  traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect'
-                                          (commandBufferHandle (commandBuffer))
-                                          (buffer)
-                                          (offset)
-                                          (drawCount)
-                                          (stride))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawIndexedIndirect
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and
--- indexed vertices
---
--- = Description
---
--- 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except
--- that the parameters are read by the device from a buffer during
--- execution. @drawCount@ draws are executed by the command, with
--- parameters taken from @buffer@ starting at @offset@ and increasing by
--- @stride@ bytes for each successive draw. The parameters of each draw are
--- encoded in an array of
--- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If
--- @drawCount@ is less than or equal to one, @stride@ is ignored.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound
---     descriptor set, specified via '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-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used
---     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
---     point were specified via 'cmdBindDescriptorSets', the bound
---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08608# If a pipeline is bound to
---     the pipeline bind point used by this command, 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-vkCmdDrawIndexedIndirect-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirect-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirect-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawIndexedIndirect-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirect-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then 'cmdSetViewport' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then 'cmdSetScissor' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then 'cmdSetLineWidth' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08617# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'cmdSetLineWidth' /must/ have been called in the current command
---     buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08618# If a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08619# If a shader object that
---     outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'cmdSetLineWidth' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then 'cmdSetDepthBias' /must/ have been called in the
---     current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08620# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08621# If a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'cmdSetBlendConstants' /must/ have been called in the current
---     command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then 'cmdSetDepthBounds' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08622# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08623# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08624# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then 'cmdSetStencilReference' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08625# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08626# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08627# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08628# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08629# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08630# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08631# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08632# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08633# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08634# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08635# If a shader object is
---     bound to any graphics stage, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08636# If a shader object is
---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08637# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08638# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08639# If a shader object is
---     bound to any graphics stage, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08640# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08641# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08643# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08644# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirect-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirect-pNext-07935# If this command has been
---     called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08651# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08652# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08653# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08654# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08657# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08658# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08659# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08698# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08699# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings
---     accessed via vertex input variables declared in the vertex shader
---     entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-07842# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics
---     pipeline was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics
---     pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-Input-07939# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirect-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have
---     been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@
---     /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/
---     be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #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
---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')
---
--- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is
---     equal to @1@, (@offset@ +
---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
---     /must/ be less than or equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is
---     greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
---     /must/ be less than or equal to the size of @buffer@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be
---     a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only
---     be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawIndexedIndirect-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawIndexedIndirect-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_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawIndexedIndirect :: 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)
-                       -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
-                          ("drawCount" ::: Word32)
-                       -> -- | @stride@ is the byte stride between successive sets of draw parameters.
-                          ("stride" ::: Word32)
-                       -> io ()
-cmdDrawIndexedIndirect commandBuffer
-                         buffer
-                         offset
-                         drawCount
-                         stride = liftIO $ do
-  let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing
-  let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr
-  traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect'
-                                                 (commandBufferHandle (commandBuffer))
-                                                 (buffer)
-                                                 (offset)
-                                                 (drawCount)
-                                                 (stride))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDispatch
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDispatch - Dispatch compute work items
---
--- = Description
---
--- When the command is executed, a global workgroup consisting of
--- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is
--- assembled.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-None-08600# For each set /n/ that is statically
---     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline
---     bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDispatch-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDispatch-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor
---     set, specified via '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-vkCmdDispatch-None-08115# If the descriptors used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     were specified via 'cmdBindDescriptorSets', the bound
---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-None-08604# Descriptors in bound descriptor
---     buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-None-08605# If a descriptor is dynamically used
---     with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDispatch-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDispatch-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDispatch-None-08608# If a pipeline is bound to the
---     pipeline bind point used by this command, 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-vkCmdDispatch-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatch-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatch-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatch-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-vkCmdDispatch-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDispatch-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-vkCmdDispatch-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDispatch-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDispatch-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatch-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, any resource written to by the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command /must/ not be an unprotected resource
---
--- -   #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, pipeline stages other than the framebuffer-space
---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
---     bound to the pipeline bind point used by this command /must/ not
---     write to any resource
---
--- -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages
---     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
---     point used by this command uses the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
---     capability, then @commandBuffer@ /must/ not be a protected command
---     buffer
---
--- -   #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less
---     than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]
---
--- -   #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less
---     than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]
---
--- -   #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less
---     than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support compute operations
---
--- -   #VUID-vkCmdDispatch-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdDispatch-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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdDispatch :: 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 ()
-cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do
-  let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDispatchPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing
-  let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr
-  traceAroundEvent "vkCmdDispatch" (vkCmdDispatch'
-                                      (commandBufferHandle (commandBuffer))
-                                      (groupCountX)
-                                      (groupCountY)
-                                      (groupCountZ))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDispatchIndirect
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()
-
--- | vkCmdDispatchIndirect - Dispatch compute work items with indirect
--- parameters
---
--- = Description
---
--- 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' 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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDispatchIndirect-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound
---     descriptor set, specified via '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-vkCmdDispatchIndirect-None-08115# If the descriptors used by
---     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
---     point were specified via 'cmdBindDescriptorSets', the bound
---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
---
--- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDispatchIndirect-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDispatchIndirect-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDispatchIndirect-None-08608# If a pipeline is bound to
---     the pipeline bind point used by this command, 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-vkCmdDispatchIndirect-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatchIndirect-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatchIndirect-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDispatchIndirect-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDispatchIndirect-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatchIndirect-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been
---     created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@
---     /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and
---     the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'
---     /must/ be less than or equal to the size of @buffer@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support compute operations
---
--- -   #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdDispatchIndirect-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdDispatchIndirect-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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDispatchIndirect :: forall io
-                     . (MonadIO io)
-                    => -- | @commandBuffer@ is the command buffer into which the command will be
-                       -- recorded.
-                       CommandBuffer
-                    -> -- | @buffer@ is the buffer containing dispatch parameters.
-                       Buffer
-                    -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.
-                       ("offset" ::: DeviceSize)
-                    -> io ()
-cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do
-  let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing
-  let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr
-  traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect'
-                                              (commandBufferHandle (commandBuffer))
-                                              (buffer)
-                                              (offset))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdCopyBuffer
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()
-
--- | vkCmdCopyBuffer - Copy data between buffer regions
---
--- = Description
---
--- Each source region specified by @pRegions@ is copied from the source
--- buffer to the destination region of the destination buffer. If any of
--- the specified regions in @srcBuffer@ overlaps in memory with any of the
--- specified regions in @dstBuffer@, values read from those overlapping
--- regions are undefined.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdCopyBuffer-commandBuffer-01822# 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, @srcBuffer@ /must/ not be a protected buffer
---
--- -   #VUID-vkCmdCopyBuffer-commandBuffer-01823# 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, @dstBuffer@ /must/ not be a protected buffer
---
--- -   #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
---
--- -   #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of
---     each element of @pRegions@ /must/ be less than the size of
---     @srcBuffer@
---
--- -   #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of
---     each element of @pRegions@ /must/ be less than the size of
---     @dstBuffer@
---
--- -   #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element
---     of @pRegions@ /must/ be less than or equal to the size of
---     @srcBuffer@ minus @srcOffset@
---
--- -   #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element
---     of @pRegions@ /must/ be less than or equal to the size of
---     @dstBuffer@ minus @dstOffset@
---
--- -   #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source
---     regions, and the union of the destination regions, specified by the
---     elements of @pRegions@, /must/ not overlap in memory
---
--- -   #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a
---     valid pointer to an array of @regionCount@ valid 'BufferCopy'
---     structures
---
--- -   #VUID-vkCmdCopyBuffer-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-vkCmdCopyBuffer-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdCopyBuffer-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/
---     be greater than @0@
---
--- -   #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,
---     @dstBuffer@, and @srcBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdCopyBuffer :: forall io
-               . (MonadIO io)
-              => -- | @commandBuffer@ is the command buffer into which the command will be
-                 -- recorded.
-                 CommandBuffer
-              -> -- | @srcBuffer@ is the source buffer.
-                 ("srcBuffer" ::: Buffer)
-              -> -- | @dstBuffer@ is the destination buffer.
-                 ("dstBuffer" ::: Buffer)
-              -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures
-                 -- specifying the regions to copy.
-                 ("regions" ::: Vector BufferCopy)
-              -> io ()
-cmdCopyBuffer commandBuffer
-                srcBuffer
-                dstBuffer
-                regions = liftIO . evalContT $ do
-  let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing
-  let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr
-  pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)
-  lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer'
-                                               (commandBufferHandle (commandBuffer))
-                                               (srcBuffer)
-                                               (dstBuffer)
-                                               ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
-                                               (pPRegions))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdCopyImage
-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()
-
--- | vkCmdCopyImage - Copy data between images
---
--- = Description
---
--- Each source region specified by @pRegions@ is copied from the source
--- image to the destination region of the destination image. If any of the
--- specified regions in @srcImage@ overlaps in memory with any of the
--- specified regions in @dstImage@, values read from those overlapping
--- regions are undefined.
---
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Multi-planar images>
--- /can/ only be copied on a per-plane basis, and the subresources used in
--- each region when copying to or from such images /must/ specify only one
--- plane, though different regions /can/ specify different planes. When
--- copying planes of multi-planar images, the format considered is the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible format for that plane>,
--- rather than the format of the multi-planar image.
---
--- If the format of the destination image has a different
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent>
--- than the source image (e.g. one is a compressed format), the offset and
--- extent for each of the regions specified is
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility scaled according to the block extents of each format>
--- to match in size. Copy regions for each image /must/ be aligned to a
--- multiple of the texel block extent in each dimension, except at the
--- edges of the image, where region extents /must/ match the edge of the
--- image.
---
--- Image data /can/ be copied between images with different image types. If
--- one image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other
--- image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple
--- layers, then each slice is copied to or from a different layer; @depth@
--- slices in the 3D image correspond to @layerCount@ layers in the 2D
--- image, with an effective @depth@ of @1@ used for the 2D image.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdCopyImage-commandBuffer-01825# 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, @srcImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdCopyImage-commandBuffer-01826# 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, @dstImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstImage@ /must/ not be an unprotected image
---
--- -   #VUID-vkCmdCopyImage-pRegions-00124# The union of all source
---     regions, and the union of all destination regions, specified by the
---     elements of @pRegions@, /must/ not overlap in memory
---
--- -   #VUID-vkCmdCopyImage-srcImage-01995# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @srcImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'
---
--- -   #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/
---     specify the layout of the image subresources of @srcImage@ specified
---     in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/
---     be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
---
--- -   #VUID-vkCmdCopyImage-dstImage-01996# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @dstImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
---
--- -   #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/
---     specify the layout of the image subresources of @dstImage@ specified
---     in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/
---     be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
---
--- -   #VUID-vkCmdCopyImage-srcImage-01548# If the
---     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
---     @dstImage@ is not a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
---     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
---     @dstImage@ /must/ be
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibility size-compatible>
---
--- -   #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,
---     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane
---     /must/ be compatible according to
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>
---     for the plane being copied
---
--- -   #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@
---     and @dstImage@ /must/ match
---
--- -   #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@
---     members of each element of @pRegions@ /must/ respect the image
---     transfer granularity requirements of @commandBuffer@’s command
---     pool’s queue family, as described in
---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
---
--- -   #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@
---     members of each element of @pRegions@ /must/ respect the image
---     transfer granularity requirements of @commandBuffer@’s command
---     pool’s queue family, as described in
---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
---
--- -   #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor
---     @dstImage@ has a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
---     then for each element of @pRegions@, @srcSubresource.aspectMask@ and
---     @dstSubresource.aspectMask@ /must/ match
---
--- -   #VUID-vkCmdCopyImage-srcImage-08713# If @srcImage@ has a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
---     then for each element of @pRegions@, @srcSubresource.aspectMask@
---     /must/ be a single valid
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
---
--- -   #VUID-vkCmdCopyImage-dstImage-08714# If @dstImage@ has a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
---     then for each element of @pRegions@, @dstSubresource.aspectMask@
---     /must/ be a single valid
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
---
--- -   #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
---     and the @dstImage@ does not have a multi-planar image format, then
---     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/
---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
---
--- -   #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
---     and the @srcImage@ does not have a multi-planar image format, then
---     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/
---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
---
--- -   #VUID-vkCmdCopyImage-apiVersion-07932# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled,
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
---     element of @pRegions@, @srcSubresource.baseArrayLayer@ and
---     @dstSubresource.baseArrayLayer@ /must/ each be @0@, and
---     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/
---     each be @1@
---
--- -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and
---     @srcSubresource.layerCount@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and
---     @dstSubresource.layerCount@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of
---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects
---     present in @srcImage@
---
--- -   #VUID-vkCmdCopyImage-aspectMask-00143# For each element of
---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects
---     present in @dstImage@
---
--- -   #VUID-vkCmdCopyImage-srcOffset-00144# For each element of
---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the width of the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-srcOffset-00145# For each element of
---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the height of the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@
---     /must/ be @1@
---
--- -   #VUID-vkCmdCopyImage-srcOffset-00147# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
---     of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the depth of the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/
---     be @1@
---
--- -   #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/
---     be @1@
---
--- -   #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @srcOffset.z@ /must/ be @0@
---
--- -   #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @dstOffset.z@ /must/ be @0@
---
--- -   #VUID-vkCmdCopyImage-apiVersion-07933# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled,
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the
---     same 'Vulkan.Core10.Enums.ImageType.ImageType'
---
--- -   #VUID-vkCmdCopyImage-srcImage-07743# If @srcImage@ and @dstImage@
---     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', one
---     /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the
---     other /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
---
--- -   #VUID-vkCmdCopyImage-srcImage-07744# If @srcImage@ and @dstImage@
---     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', the
---     @layerCount@ member of @srcSubresource@ and @dstSubresource@ in each
---     element of @pRegions@ /must/ match
---
--- -   #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@
---     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then
---     for each element of @pRegions@, @extent.depth@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
---     element of @pRegions@, @extent.depth@ /must/ equal
---     @srcSubresource.layerCount@
---
--- -   #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
---     element of @pRegions@, @extent.depth@ /must/ equal
---     @dstSubresource.layerCount@
---
--- -   #VUID-vkCmdCopyImage-dstOffset-00150# For each element of
---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the width of the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-dstOffset-00151# For each element of
---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the height of the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@
---     /must/ be @1@
---
--- -   #VUID-vkCmdCopyImage-dstOffset-00153# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
---     of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the depth of the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-pRegions-07278# For each element of @pRegions@,
---     @srcOffset.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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-pRegions-07279# For each element of @pRegions@,
---     @srcOffset.y@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-pRegions-07280# For each element of @pRegions@,
---     @srcOffset.z@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-pRegions-07281# For each element of @pRegions@,
---     @dstOffset.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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-pRegions-07282# For each element of @pRegions@,
---     @dstOffset.y@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-pRegions-07283# For each element of @pRegions@,
---     @dstOffset.z@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-srcImage-01728# For each element of @pRegions@,
---     if the sum of @srcOffset.x@ and @extent.width@ does not equal the
---     width of the subresource specified by @srcSubresource@,
---     @extent.width@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-srcImage-01729# For each element of @pRegions@,
---     if the sum of @srcOffset.y@ and @extent.height@ does not equal the
---     height of the subresource specified by @srcSubresource@,
---     @extent.height@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-srcImage-01730# For each element of @pRegions@,
---     if the sum of @srcOffset.z@ and @extent.depth@ does not equal the
---     depth of the subresource specified by @srcSubresource@,
---     @extent.depth@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImage-dstImage-01732# For each element of @pRegions@,
---     if the sum of @dstOffset.x@ and @extent.width@ does not equal the
---     width of the subresource specified by @dstSubresource@,
---     @extent.width@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-dstImage-01733# For each element of @pRegions@,
---     if the sum of @dstOffset.y@ and @extent.height@ does not equal the
---     height of the subresource specified by @dstSubresource@,
---     @extent.height@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-dstImage-01734# For each element of @pRegions@,
---     if the sum of @dstOffset.z@ and @extent.depth@ does not equal the
---     depth of the subresource specified by @dstSubresource@,
---     @extent.depth@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any
---     element of @pRegions@ includes any flag other than
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---     or @srcImage@ was not created with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
---     /must/ have been included in the
---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
---     @srcImage@
---
--- -   #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any
---     element of @pRegions@ includes any flag other than
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---     or @dstImage@ was not created with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     /must/ have been included in the
---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
---     @dstImage@
---
--- -   #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any
---     element of @pRegions@ includes
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
---     and @srcImage@ was created with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
---     /must/ have been included in the
---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
---     used to create @srcImage@
---
--- -   #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any
---     element of @pRegions@ includes
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
---     and @dstImage@ was created with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     /must/ have been included in the
---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
---     used to create @dstImage@
---
--- -   #VUID-vkCmdCopyImage-srcImage-07966# If @srcImage@ is non-sparse
---     then the image or the specified /disjoint/ plane /must/ be bound
---     completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyImage-srcSubresource-07967# The
---     @srcSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
---
--- -   #VUID-vkCmdCopyImage-srcSubresource-07968# The
---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
---
--- -   #VUID-vkCmdCopyImage-srcImage-07969# @srcImage@ /must/ not have been
---     created with @flags@ containing
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   #VUID-vkCmdCopyImage-dstImage-07966# If @dstImage@ is non-sparse
---     then the image or the specified /disjoint/ plane /must/ be bound
---     completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyImage-dstSubresource-07967# The
---     @dstSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
---
--- -   #VUID-vkCmdCopyImage-dstSubresource-07968# The
---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
---
--- -   #VUID-vkCmdCopyImage-dstImage-07969# @dstImage@ /must/ not have been
---     created with @flags@ containing
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a
---     valid pointer to an array of @regionCount@ valid 'ImageCopy'
---     structures
---
--- -   #VUID-vkCmdCopyImage-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-vkCmdCopyImage-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdCopyImage-videocoding# This command /must/ only be called
---     outside of a video coding scope
---
--- -   #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/
---     be greater than @0@
---
--- -   #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,
---     @dstImage@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
--- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
-cmdCopyImage :: forall io
-              . (MonadIO io)
-             => -- | @commandBuffer@ is the command buffer into which the command will be
-                -- recorded.
-                CommandBuffer
-             -> -- | @srcImage@ is the source image.
-                ("srcImage" ::: Image)
-             -> -- | @srcImageLayout@ is the current layout of the source image subresource.
-                ("srcImageLayout" ::: ImageLayout)
-             -> -- | @dstImage@ is the destination image.
-                ("dstImage" ::: Image)
-             -> -- | @dstImageLayout@ is the current layout of the destination image
-                -- subresource.
-                ("dstImageLayout" ::: ImageLayout)
-             -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying
-                -- the regions to copy.
-                ("regions" ::: Vector ImageCopy)
-             -> io ()
-cmdCopyImage commandBuffer
-               srcImage
-               srcImageLayout
-               dstImage
-               dstImageLayout
-               regions = liftIO . evalContT $ do
-  let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing
-  let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr
-  pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)
-  lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage'
-                                              (commandBufferHandle (commandBuffer))
-                                              (srcImage)
-                                              (srcImageLayout)
-                                              (dstImage)
-                                              (dstImageLayout)
-                                              ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
-                                              (pPRegions))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBlitImage
-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()
-
--- | vkCmdBlitImage - Copy regions of an image, potentially performing format
--- conversion,
---
--- = Description
---
--- 'cmdBlitImage' /must/ not be used for multisampled source or destination
--- images. Use 'cmdResolveImage' for this purpose.
---
--- As the sizes of the source and destination extents /can/ differ in any
--- dimension, texels in the source extent are scaled and filtered to the
--- destination extent. Scaling occurs via the following operations:
---
--- -   For each destination texel, the integer coordinate of that texel is
---     converted to an unnormalized texture coordinate, using the effective
---     inverse of the equations described in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:
---
---     -   ubase = i + ½
---
---     -   vbase = j + ½
---
---     -   wbase = k + ½
---
--- -   These base coordinates are then offset by the first destination
---     offset:
---
---     -   uoffset = ubase - xdst0
---
---     -   voffset = vbase - ydst0
---
---     -   woffset = wbase - zdst0
---
---     -   aoffset = a - @baseArrayCount@dst
---
--- -   The scale is determined from the source and destination regions, and
---     applied to the offset coordinates:
---
---     -   scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)
---
---     -   scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)
---
---     -   scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)
---
---     -   uscaled = uoffset × scaleu
---
---     -   vscaled = voffset × scalev
---
---     -   wscaled = woffset × scalew
---
--- -   Finally the source offset is added to the scaled coordinates, to
---     determine the final unnormalized coordinates used to sample from
---     @srcImage@:
---
---     -   u = uscaled + xsrc0
---
---     -   v = vscaled + ysrc0
---
---     -   w = wscaled + zsrc0
---
---     -   q = @mipLevel@
---
---     -   a = aoffset + @baseArrayCount@src
---
--- These coordinates are used to sample from the source image, as described
--- in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations chapter>,
--- with the filter mode equal to that of @filter@, a mipmap mode of
--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and
--- an address mode of
--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.
--- Implementations /must/ clamp at the edge of the source image, and /may/
--- additionally clamp to the edge of the source region.
---
--- Note
---
--- Due to allowable rounding errors in the generation of the source texture
--- coordinates, it is not always possible to guarantee exactly which source
--- texels will be sampled for a given blit. As rounding errors are
--- implementation-dependent, the exact results of a blitting operation are
--- also implementation-dependent.
---
--- Blits are done layer by layer starting with the @baseArrayLayer@ member
--- of @srcSubresource@ for the source and @dstSubresource@ for the
--- destination. @layerCount@ layers are blitted to the destination image.
---
--- When blitting 3D textures, slices in the destination region bounded by
--- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the
--- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the
--- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then
--- the value sampled from the source image is taken by doing linear
--- filtering using the interpolated __z__ coordinate represented by __w__
--- in the previous equations. If the @filter@ parameter is
--- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from
--- the source image is taken from the single nearest slice, with an
--- implementation-dependent arithmetic rounding mode.
---
--- The following filtering and conversion rules apply:
---
--- -   Integer formats /can/ only be converted to other integer formats
---     with the same signedness.
---
--- -   No format conversion is supported between depth\/stencil images. The
---     formats /must/ match.
---
--- -   Format conversions on unorm, snorm, scaled and packed float formats
---     of the copied aspect of the image are performed by first converting
---     the pixels to float values.
---
--- -   For sRGB source formats, nonlinear RGB values are converted to
---     linear representation prior to filtering.
---
--- -   After filtering, the float values are first clamped and then cast to
---     the destination image format. In case of sRGB destination format,
---     linear RGB values are converted to nonlinear representation before
---     writing the pixel to the image.
---
--- Signed and unsigned integers are converted by first clamping to the
--- representable range of the destination format, then casting the value.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBlitImage-commandBuffer-01834# 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, @srcImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdBlitImage-commandBuffer-01835# 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, @dstImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstImage@ /must/ not be an unprotected image
---
--- -   #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by
---     each element of @pRegions@ /must/ be a region that is contained
---     within @srcImage@
---
--- -   #VUID-vkCmdBlitImage-pRegions-00216# The destination region
---     specified by each element of @pRegions@ /must/ be a region that is
---     contained within @dstImage@
---
--- -   #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination
---     regions, specified by the elements of @pRegions@, /must/ not overlap
---     in memory with any texel that /may/ be sampled during the blit
---     operation
---
--- -   #VUID-vkCmdBlitImage-srcImage-01999# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @srcImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
---
--- -   #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>
---
--- -   #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
---     usage flag
---
--- -   #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/
---     specify the layout of the image subresources of @srcImage@ specified
---     in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/
---     be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
---
--- -   #VUID-vkCmdBlitImage-dstImage-02000# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @dstImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'
---
--- -   #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>
---
--- -   #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/
---     specify the layout of the image subresources of @dstImage@ specified
---     in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/
---     be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
---
--- -   #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or
---     @dstImage@ was created with a signed integer
---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been
---     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'
---
--- -   #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or
---     @dstImage@ was created with an unsigned integer
---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been
---     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'
---
--- -   #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or
---     @dstImage@ was created with a depth\/stencil format, the other
---     /must/ have exactly the same format
---
--- -   #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with
---     a depth\/stencil format, @filter@ /must/ be
---     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'
---
--- -   #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been
---     created with a @samples@ value of
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
---
--- -   #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been
---     created with a @samples@ value of
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
---
--- -   #VUID-vkCmdBlitImage-filter-02001# If @filter@ is
---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @srcImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
---
--- -   #VUID-vkCmdBlitImage-filter-02002# If @filter@ is
---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', then the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @srcImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
---
--- -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is
---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', @srcImage@ /must/ be
---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
---
--- -   #VUID-vkCmdBlitImage-srcSubresource-01705# The
---     @srcSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
---
--- -   #VUID-vkCmdBlitImage-dstSubresource-01706# The
---     @dstSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
---
--- -   #VUID-vkCmdBlitImage-srcSubresource-01707# The
---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
---
--- -   #VUID-vkCmdBlitImage-dstSubresource-01708# The
---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
---
--- -   #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@
---     /must/ not have been created with @flags@ containing
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or
---     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',
---     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@
---     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and
---     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/
---     each be @1@
---
--- -   #VUID-vkCmdBlitImage-aspectMask-00241# For each element of
---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects
---     present in @srcImage@
---
--- -   #VUID-vkCmdBlitImage-aspectMask-00242# For each element of
---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects
---     present in @dstImage@
---
--- -   #VUID-vkCmdBlitImage-srcOffset-00243# For each element of
---     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be
---     greater than or equal to @0@ and less than or equal to the width of
---     the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdBlitImage-srcOffset-00244# For each element of
---     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be
---     greater than or equal to @0@ and less than or equal to the height of
---     the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y
---     /must/ be @1@
---
--- -   #VUID-vkCmdBlitImage-srcOffset-00246# For each element of
---     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be
---     greater than or equal to @0@ and less than or equal to the depth of
---     the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z
---     /must/ be @1@
---
--- -   #VUID-vkCmdBlitImage-dstOffset-00248# For each element of
---     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be
---     greater than or equal to @0@ and less than or equal to the width of
---     the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdBlitImage-dstOffset-00249# For each element of
---     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be
---     greater than or equal to @0@ and less than or equal to the height of
---     the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y
---     /must/ be @1@
---
--- -   #VUID-vkCmdBlitImage-dstOffset-00251# For each element of
---     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be
---     greater than or equal to @0@ and less than or equal to the depth of
---     the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z
---     /must/ be @1@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a
---     valid pointer to an array of @regionCount@ valid 'ImageBlit'
---     structures
---
--- -   #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid
---     'Vulkan.Core10.Enums.Filter.Filter' value
---
--- -   #VUID-vkCmdBlitImage-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-vkCmdBlitImage-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdBlitImage-videocoding# This command /must/ only be called
---     outside of a video coding scope
---
--- -   #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/
---     be greater than @0@
---
--- -   #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,
---     @dstImage@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',
--- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
-cmdBlitImage :: forall io
-              . (MonadIO io)
-             => -- | @commandBuffer@ is the command buffer into which the command will be
-                -- recorded.
-                CommandBuffer
-             -> -- | @srcImage@ is the source image.
-                ("srcImage" ::: Image)
-             -> -- | @srcImageLayout@ is the layout of the source image subresources for the
-                -- blit.
-                ("srcImageLayout" ::: ImageLayout)
-             -> -- | @dstImage@ is the destination image.
-                ("dstImage" ::: Image)
-             -> -- | @dstImageLayout@ is the layout of the destination image subresources for
-                -- the blit.
-                ("dstImageLayout" ::: ImageLayout)
-             -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying
-                -- the regions to blit.
-                ("regions" ::: Vector ImageBlit)
-             -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter
-                -- to apply if the blits require scaling.
-                Filter
-             -> io ()
-cmdBlitImage commandBuffer
-               srcImage
-               srcImageLayout
-               dstImage
-               dstImageLayout
-               regions
-               filter' = liftIO . evalContT $ do
-  let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing
-  let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr
-  pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)
-  lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage'
-                                              (commandBufferHandle (commandBuffer))
-                                              (srcImage)
-                                              (srcImageLayout)
-                                              (dstImage)
-                                              (dstImageLayout)
-                                              ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
-                                              (pPRegions)
-                                              (filter'))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdCopyBufferToImage
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()
-
--- | vkCmdCopyBufferToImage - Copy data from a buffer into an image
---
--- = Description
---
--- Each source region specified by @pRegions@ is copied from the source
--- buffer to the destination region of the destination image according to
--- the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations>
--- for each resource. If any of the specified regions in @srcBuffer@
--- overlaps in memory with any of the specified regions in @dstImage@,
--- values read from those overlapping regions are undefined. If any region
--- accesses a depth aspect in @dstImage@ and the
--- @VK_EXT_depth_range_unrestricted@ extension is not enabled, values
--- copied from @srcBuffer@ outside of the range [0,1] will be be written as
--- undefined values to the destination image.
---
--- Copy regions for the image /must/ be aligned to a multiple of the texel
--- block extent in each dimension, except at the edges of the image, where
--- region extents /must/ match the edge of the image.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07966# If @dstImage@ is
---     non-sparse then the image or the specified /disjoint/ plane /must/
---     be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07967# The
---     @imageSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
---
--- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07968# The
---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07969# @dstImage@ /must/ not
---     have been created with @flags@ containing
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07970# The image
---     region specified by each element of @pRegions@ /must/ be contained
---     within the specified @imageSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07971# For each
---     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
---     less than or equal to the width of the specified @imageSubresource@
---     of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07972# For each
---     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
---     less than or equal to the height of the specified @imageSubresource@
---     of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07973# @dstImage@ /must/ have
---     a sample count equal to
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
---
--- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# 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, @srcBuffer@ /must/ not be a protected buffer
---
--- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# 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, @dstImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@
---     is a protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstImage@ /must/ not be an unprotected image
---
--- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-07737# If the queue
---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which
---     @commandBuffer@ was allocated from does not support
---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the
---     @bufferOffset@ member of any element of @pRegions@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageOffset-07738# The @imageOffset@
---     and @imageExtent@ members of each element of @pRegions@ /must/
---     respect the image transfer granularity requirements of
---     @commandBuffer@’s command pool’s queue family, as described in
---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
---
--- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-07739# If the queue
---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which
---     @commandBuffer@ was allocated from does not support
---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each
---     element of @pRegions@, the @aspectMask@ member of @imageSubresource@
---     /must/ not be
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07979# If @dstImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
---     @imageExtent.height@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of
---     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
---     less than or equal to the depth of the specified @imageSubresource@
---     of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07980# If @dstImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
---     /must/ be @1@
---
--- -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-00203# For each element
---     of @pRegions@, @bufferRowLength@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# For each
---     element of @pRegions@, @bufferImageHeight@ /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 height>
---     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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-07275# For each element of
---     @pRegions@, @imageOffset.y@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-07276# For each element of
---     @pRegions@, @imageOffset.z@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00207# For each element of
---     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
---     not equal the width of the subresource specified by
---     @srcSubresource@, @extent.width@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00208# For each element of
---     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
---     not equal the height of the subresource specified by
---     @srcSubresource@, @extent.height@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00209# For each element of
---     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
---     not equal the depth of the subresource specified by
---     @srcSubresource@, @extent.depth@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-aspectMask-00211# For each element of
---     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects
---     present in @dstImage@
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07981# If @dstImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>
---     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'
---     or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07982# If @dstImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>
---     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     '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'
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07983# If @dstImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
---     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
---     @imageSubresource.layerCount@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-07277# For each element of
---     @pRegions@, @bufferRowLength@ divided by the
---     <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 @dstImage@ /must/ be
---     less than or equal to 231-1
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07975# 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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-07976# 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-dstImage-07978# If @dstImage@ has a
---     depth\/stencil format, the @bufferOffset@ member of any element of
---     @pRegions@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be
---     large enough to contain all buffer locations that are accessed
---     according to
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,
---     for each element of @pRegions@
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source
---     regions, and the union of all destination regions, specified by the
---     elements of @pRegions@, /must/ not overlap in memory
---
--- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/
---     have been created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-01997# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @dstImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
---
--- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have
---     been created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@
---     /must/ specify the layout of the image subresources of @dstImage@
---     specified in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-07931# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted VK_EXT_depth_range_unrestricted>
---     is not enabled, for each element of @pRegions@ whose
---     @imageSubresource@ contains a depth aspect, the data in @srcBuffer@
---     /must/ be in the range [0,1]
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/
---     be a valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#
---     @dstImageLayout@ /must/ be a valid
---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
---
--- -   #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/
---     be a valid pointer to an array of @regionCount@ valid
---     'BufferImageCopy' structures
---
--- -   #VUID-vkCmdCopyBufferToImage-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-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdCopyBufferToImage-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@
---     /must/ be greater than @0@
---
--- -   #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,
---     @dstImage@, and @srcBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
-cmdCopyBufferToImage :: forall io
-                      . (MonadIO io)
-                     => -- | @commandBuffer@ is the command buffer into which the command will be
-                        -- recorded.
-                        CommandBuffer
-                     -> -- | @srcBuffer@ is the source buffer.
-                        ("srcBuffer" ::: Buffer)
-                     -> -- | @dstImage@ is the destination image.
-                        ("dstImage" ::: Image)
-                     -> -- | @dstImageLayout@ is the layout of the destination image subresources for
-                        -- the copy.
-                        ("dstImageLayout" ::: ImageLayout)
-                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures
-                        -- specifying the regions to copy.
-                        ("regions" ::: Vector BufferImageCopy)
-                     -> io ()
-cmdCopyBufferToImage commandBuffer
-                       srcBuffer
-                       dstImage
-                       dstImageLayout
-                       regions = liftIO . evalContT $ do
-  let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing
-  let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr
-  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)
-  lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage'
-                                                      (commandBufferHandle (commandBuffer))
-                                                      (srcBuffer)
-                                                      (dstImage)
-                                                      (dstImageLayout)
-                                                      ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
-                                                      (pPRegions))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdCopyImageToBuffer
-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()
-
--- | vkCmdCopyImageToBuffer - Copy image data into a buffer
---
--- = Description
---
--- Each source region specified by @pRegions@ is copied from the source
--- image to the destination region of the destination buffer according to
--- the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations>
--- for each resource. If any of the specified regions in @srcImage@
--- overlaps in memory with any of the specified regions in @dstBuffer@,
--- values read from those overlapping regions are undefined.
---
--- Copy regions for the image /must/ be aligned to a multiple of the texel
--- block extent in each dimension, except at the edges of the image, where
--- region extents /must/ match the edge of the image.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07966# If @srcImage@ is
---     non-sparse then the image or the specified /disjoint/ plane /must/
---     be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07967# The
---     @imageSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07968# The
---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07969# @srcImage@ /must/ not
---     have been created with @flags@ containing
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07970# The image
---     region specified by each element of @pRegions@ /must/ be contained
---     within the specified @imageSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07971# For each
---     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
---     less than or equal to the width of the specified @imageSubresource@
---     of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07972# For each
---     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
---     less than or equal to the height of the specified @imageSubresource@
---     of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07973# @srcImage@ /must/ have
---     a sample count equal to
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
---
--- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# 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, @srcImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# 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, @dstBuffer@ /must/ not be a protected buffer
---
--- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@
---     is a protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
---
--- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-07746# If the queue
---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which
---     @commandBuffer@ was allocated from does not support
---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the
---     @bufferOffset@ member of any element of @pRegions@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-07747# The @imageOffset@
---     and @imageExtent@ members of each element of @pRegions@ /must/
---     respect the image transfer granularity requirements of
---     @commandBuffer@’s command pool’s queue family, as described in
---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07979# If @srcImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
---     @imageExtent.height@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of
---     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
---     less than or equal to the depth of the specified @imageSubresource@
---     of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07980# If @srcImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
---     /must/ be @1@
---
--- -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203# For each element
---     of @pRegions@, @bufferRowLength@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# For each
---     element of @pRegions@, @bufferImageHeight@ /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 height>
---     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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07275# For each element of
---     @pRegions@, @imageOffset.y@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07276# For each element of
---     @pRegions@, @imageOffset.z@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# For each element of
---     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
---     not equal the width of the subresource specified by
---     @srcSubresource@, @extent.width@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# For each element of
---     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
---     not equal the height of the subresource specified by
---     @srcSubresource@, @extent.height@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# For each element of
---     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
---     not equal the depth of the subresource specified by
---     @srcSubresource@, @extent.depth@ /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 depth>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-aspectMask-00211# For each element of
---     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects
---     present in @srcImage@
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07981# If @srcImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>
---     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'
---     or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07982# If @srcImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>
---     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     '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'
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07983# If @srcImage@ is of
---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
---     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
---     @imageSubresource.layerCount@ /must/ be @1@
---
--- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07277# For each element of
---     @pRegions@, @bufferRowLength@ divided by the
---     <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-srcImage-07975# 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
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07976# 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-07978# If @srcImage@ has a
---     depth\/stencil format, the @bufferOffset@ member of any element of
---     @pRegions@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be
---     large enough to contain all buffer locations that are accessed
---     according to
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,
---     for each element of @pRegions@
---
--- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source
---     regions, and the union of all destination regions, specified by the
---     elements of @pRegions@, /must/ not overlap in memory
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have
---     been created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @srcImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'
---
--- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/
---     have been created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@
---     /must/ specify the layout of the image subresources of @srcImage@
---     specified in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/
---     be a valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#
---     @srcImageLayout@ /must/ be a valid
---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
---
--- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/
---     be a valid pointer to an array of @regionCount@ valid
---     'BufferImageCopy' structures
---
--- -   #VUID-vkCmdCopyImageToBuffer-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-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdCopyImageToBuffer-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@
---     /must/ be greater than @0@
---
--- -   #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,
---     @dstBuffer@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
-cmdCopyImageToBuffer :: forall io
-                      . (MonadIO io)
-                     => -- | @commandBuffer@ is the command buffer into which the command will be
-                        -- recorded.
-                        CommandBuffer
-                     -> -- | @srcImage@ is the source image.
-                        ("srcImage" ::: Image)
-                     -> -- | @srcImageLayout@ is the layout of the source image subresources for the
-                        -- copy.
-                        ("srcImageLayout" ::: ImageLayout)
-                     -> -- | @dstBuffer@ is the destination buffer.
-                        ("dstBuffer" ::: Buffer)
-                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures
-                        -- specifying the regions to copy.
-                        ("regions" ::: Vector BufferImageCopy)
-                     -> io ()
-cmdCopyImageToBuffer commandBuffer
-                       srcImage
-                       srcImageLayout
-                       dstBuffer
-                       regions = liftIO . evalContT $ do
-  let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing
-  let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr
-  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)
-  lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer'
-                                                      (commandBufferHandle (commandBuffer))
-                                                      (srcImage)
-                                                      (srcImageLayout)
-                                                      (dstBuffer)
-                                                      ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
-                                                      (pPRegions))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdUpdateBuffer
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()
-
--- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory
---
--- = Description
---
--- @dataSize@ /must/ be less than or equal to 65536 bytes. For larger
--- updates, applications /can/ use buffer to buffer
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers copies>.
---
--- Note
---
--- Buffer updates performed with 'cmdUpdateBuffer' first copy the data into
--- command buffer memory when the command is recorded (which requires
--- additional storage and may incur an additional allocation), and then
--- copy the data from the command buffer into @dstBuffer@ when the command
--- is executed on a device.
---
--- The additional cost of this functionality compared to
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>
--- means it is only recommended for very small amounts of data, and is why
--- it is limited to only 65536 bytes.
---
--- Applications /can/ work around this by issuing multiple
--- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but
--- it is strongly recommended that they /should/ not.
---
--- The source data is copied from the user pointer to the command buffer
--- when the command is called.
---
--- 'cmdUpdateBuffer' is only allowed outside of a render pass. This command
--- is treated as a “transfer” operation for the purposes of synchronization
--- barriers. The
--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
--- /must/ be specified in @usage@ of
--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be
--- compatible with 'cmdUpdateBuffer'.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less
---     than the size of @dstBuffer@
---
--- -   #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less
---     than or equal to the size of @dstBuffer@ minus @dstOffset@
---
--- -   #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have
---     been created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less
---     than or equal to @65536@
---
--- -   #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is
---     an unprotected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstBuffer@ /must/ not be a protected buffer
---
--- -   #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a
---     protected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid
---     pointer to an array of @dataSize@ bytes
---
--- -   #VUID-vkCmdUpdateBuffer-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-vkCmdUpdateBuffer-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdUpdateBuffer-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be
---     greater than @0@
---
--- -   #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and
---     @dstBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdUpdateBuffer :: forall io
-                 . (MonadIO io)
-                => -- | @commandBuffer@ is the command buffer into which the command will be
-                   -- recorded.
-                   CommandBuffer
-                -> -- | @dstBuffer@ is a handle to the buffer to be updated.
-                   ("dstBuffer" ::: Buffer)
-                -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and
-                   -- /must/ be a multiple of 4.
-                   ("dstOffset" ::: DeviceSize)
-                -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of
-                   -- 4.
-                   ("dataSize" ::: DeviceSize)
-                -> -- | @pData@ is a pointer to the source data for the buffer update, and
-                   -- /must/ be at least @dataSize@ bytes in size.
-                   ("data" ::: Ptr ())
-                -> io ()
-cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do
-  let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdUpdateBufferPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing
-  let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr
-  traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer'
-                                          (commandBufferHandle (commandBuffer))
-                                          (dstBuffer)
-                                          (dstOffset)
-                                          (dataSize)
-                                          (data'))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdFillBuffer
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()
-
--- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value
---
--- = Description
---
--- 'cmdFillBuffer' is treated as a “transfer” operation for the purposes of
--- synchronization barriers. The
--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
--- /must/ be specified in @usage@ of
--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be
--- compatible with 'cmdFillBuffer'.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less
---     than the size of @dstBuffer@
---
--- -   #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to
---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater
---     than @0@
---
--- -   #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to
---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than
---     or equal to the size of @dstBuffer@ minus @dstOffset@
---
--- -   #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to
---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple
---     of @4@
---
--- -   #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdFillBuffer-apiVersion-07894# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled and
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, the 'Vulkan.Core10.Handles.CommandPool'
---     that @commandBuffer@ was allocated from /must/ support graphics or
---     compute operations
---
--- -   #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an
---     unprotected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstBuffer@ /must/ not be a protected buffer
---
--- -   #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a
---     protected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdFillBuffer-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-vkCmdFillBuffer-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics or compute
---     operations
---
--- -   #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdFillBuffer-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and
---     @dstBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdFillBuffer :: forall io
-               . (MonadIO io)
-              => -- | @commandBuffer@ is the command buffer into which the command will be
-                 -- recorded.
-                 CommandBuffer
-              -> -- | @dstBuffer@ is the buffer to be filled.
-                 ("dstBuffer" ::: Buffer)
-              -> -- | @dstOffset@ is the byte offset into the buffer at which to start
-                 -- filling, and /must/ be a multiple of 4.
-                 ("dstOffset" ::: DeviceSize)
-              -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple
-                 -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from
-                 -- @offset@ to the end of the buffer. If
-                 -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size
-                 -- of the buffer is not a multiple of 4, then the nearest smaller multiple
-                 -- is used.
-                 DeviceSize
-              -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill
-                 -- @size@ bytes of data. The data word is written to memory according to
-                 -- the host endianness.
-                 ("data" ::: Word32)
-              -> io ()
-cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do
-  let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdFillBufferPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing
-  let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr
-  traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer'
-                                        (commandBufferHandle (commandBuffer))
-                                        (dstBuffer)
-                                        (dstOffset)
-                                        (size)
-                                        (data'))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdClearColorImage
-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()
-
--- | vkCmdClearColorImage - Clear regions of a color image
---
--- = Description
---
--- Each specified range in @pRanges@ is cleared to the value specified by
--- @pColor@.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdClearColorImage-image-01993# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @image@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
---
--- -   #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any
---     of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>
---
--- -   #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/
---     specify the layout of the image subresource ranges of @image@
---     specified in @pRanges@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/
---     be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
---
--- -   #VUID-vkCmdClearColorImage-aspectMask-02498# The
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@
---     members of the elements of the @pRanges@ array /must/ each only
---     include
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
---
--- -   #VUID-vkCmdClearColorImage-baseMipLevel-01470# The
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
---     members of the elements of the @pRanges@ array /must/ each be less
---     than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
---
--- -   #VUID-vkCmdClearColorImage-pRanges-01692# For each
---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
---     @pRanges@, if the @levelCount@ member is not
---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then
---     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the
---     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when
---     @image@ was created
---
--- -   #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@
---     members of the elements of the @pRanges@ array /must/ each be less
---     than the @arrayLayers@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
---
--- -   #VUID-vkCmdClearColorImage-pRanges-01693# For each
---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
---     @pRanges@, if the @layerCount@ member is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then
---     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @image@ was created
---
--- -   #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a
---     compressed or depth\/stencil format
---
--- -   #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid
---     pointer to a 'ClearColorValue' union
---
--- -   #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@
---     is an unprotected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @image@ /must/ not be a protected image
---
--- -   #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@
---     is a protected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, /must/ not be an unprotected image
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a
---     valid pointer to an array of @rangeCount@ valid
---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures
---
--- -   #VUID-vkCmdClearColorImage-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-vkCmdClearColorImage-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdClearColorImage-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@
---     /must/ be greater than @0@
---
--- -   #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,
---     and @image@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Handles.Image',
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'
-cmdClearColorImage :: forall io
-                    . (MonadIO io)
-                   => -- | @commandBuffer@ is the command buffer into which the command will be
-                      -- recorded.
-                      CommandBuffer
-                   -> -- | @image@ is the image to be cleared.
-                      Image
-                   -> -- | @imageLayout@ specifies the current layout of the image subresource
-                      -- ranges to be cleared, and /must/ be
-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.
-                      ImageLayout
-                   -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the
-                      -- values that the image subresource ranges will be cleared to (see
-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>
-                      -- below).
-                      ClearColorValue
-                   -> -- | @pRanges@ is a pointer to an array of
-                      -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a
-                      -- range of mipmap levels, array layers, and aspects to be cleared, as
-                      -- described in
-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.
-                      ("ranges" ::: Vector ImageSubresourceRange)
-                   -> io ()
-cmdClearColorImage commandBuffer
-                     image
-                     imageLayout
-                     color
-                     ranges = liftIO . evalContT $ do
-  let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing
-  let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr
-  pColor <- ContT $ withCStruct (color)
-  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)
-  lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage'
-                                                    (commandBufferHandle (commandBuffer))
-                                                    (image)
-                                                    (imageLayout)
-                                                    pColor
-                                                    ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32))
-                                                    (pPRanges))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdClearDepthStencilImage
-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()
-
--- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil
--- image
---
--- == Valid Usage
---
--- -   #VUID-vkCmdClearDepthStencilImage-image-01994# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @image@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
---
--- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@
---     member of any element of @pRanges@ includes
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
---     and @image@ was created with
---     <VkImageStencilUsageCreateInfo.html separate stencil usage>,
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     /must/ have been included in the
---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
---     used to create @image@
---
--- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@
---     member of any element of @pRanges@ includes
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
---     and @image@ was not created with
---     <VkImageStencilUsageCreateInfo.html separate stencil usage>,
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     /must/ have been included in the
---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
---     @image@
---
--- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@
---     member of any element of @pRanges@ includes
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     /must/ have been included in the
---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
---     @image@
---
--- -   #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@
---     /must/ specify the layout of the image subresource ranges of @image@
---     specified in @pRanges@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@
---     /must/ be either of
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
---
--- -   #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member
---     of each element of the @pRanges@ array /must/ not include bits other
---     than
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---
--- -   #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s
---     format does not have a stencil component, then the
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member
---     of each element of the @pRanges@ array /must/ not include the
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---     bit
---
--- -   #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s
---     format does not have a depth component, then the
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member
---     of each element of the @pRanges@ array /must/ not include the
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit
---
--- -   #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
---     members of the elements of the @pRanges@ array /must/ each be less
---     than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
---
--- -   #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each
---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
---     @pRanges@, if the @levelCount@ member is not
---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then
---     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the
---     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when
---     @image@ was created
---
--- -   #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The
---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@
---     members of the elements of the @pRanges@ array /must/ each be less
---     than the @arrayLayers@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
---
--- -   #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each
---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
---     @pRanges@, if the @layerCount@ member is not
---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then
---     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @image@ was created
---
--- -   #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a
---     depth\/stencil format
---
--- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If
---     @commandBuffer@ is an unprotected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @image@ /must/ not be a protected image
---
--- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If
---     @commandBuffer@ is a protected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @image@ /must/ not be an unprotected image
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be
---     a valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#
---     @imageLayout@ /must/ be a valid
---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
---
--- -   #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#
---     @pDepthStencil@ /must/ be a valid pointer to a valid
---     'ClearDepthStencilValue' structure
---
--- -   #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@
---     /must/ be a valid pointer to an array of @rangeCount@ valid
---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures
---
--- -   #VUID-vkCmdClearDepthStencilImage-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-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/
---     only be called outside of a render pass instance
---
--- -   #VUID-vkCmdClearDepthStencilImage-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#
---     @rangeCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCmdClearDepthStencilImage-commonparent# Both of
---     @commandBuffer@, and @image@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Handles.Image',
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'
-cmdClearDepthStencilImage :: forall io
-                           . (MonadIO io)
-                          => -- | @commandBuffer@ is the command buffer into which the command will be
-                             -- recorded.
-                             CommandBuffer
-                          -> -- | @image@ is the image to be cleared.
-                             Image
-                          -> -- | @imageLayout@ specifies the current layout of the image subresource
-                             -- ranges to be cleared, and /must/ be
-                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
-                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.
-                             ImageLayout
-                          -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure
-                             -- containing the values that the depth and stencil image subresource
-                             -- ranges will be cleared to (see
-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>
-                             -- below).
-                             ClearDepthStencilValue
-                          -> -- | @pRanges@ is a pointer to an array of
-                             -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a
-                             -- range of mipmap levels, array layers, and aspects to be cleared, as
-                             -- described in
-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.
-                             ("ranges" ::: Vector ImageSubresourceRange)
-                          -> io ()
-cmdClearDepthStencilImage commandBuffer
-                            image
-                            imageLayout
-                            depthStencil
-                            ranges = liftIO . evalContT $ do
-  let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing
-  let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr
-  pDepthStencil <- ContT $ withCStruct (depthStencil)
-  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)
-  lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage'
-                                                           (commandBufferHandle (commandBuffer))
-                                                           (image)
-                                                           (imageLayout)
-                                                           pDepthStencil
-                                                           ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32))
-                                                           (pPRanges))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdClearAttachments
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()
-
--- | vkCmdClearAttachments - Clear regions within bound framebuffer
--- attachments
---
--- = Description
---
--- If the render pass has a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,
--- clears follow the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>
--- as if each clear region was a primitive which generates fragments. The
--- clear color is applied to all pixels inside each fragment’s area
--- regardless if the pixels lie outside of the clear region. Clears /may/
--- have a different set of supported fragment areas than draws.
---
--- Unlike other
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,
--- 'cmdClearAttachments' is not a transfer command. It performs its
--- operations in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.
--- For color attachments, the operations are executed as color attachment
--- writes, by the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
--- stage. For depth\/stencil attachments, the operations are executed as
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>
--- and
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil writes>
--- by the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
--- and
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
--- stages.
---
--- 'cmdClearAttachments' is not affected by the bound pipeline state.
---
--- Note
---
--- It is generally preferable to clear attachments by using the
--- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load
--- operation at the start of rendering, as it is more efficient on some
--- implementations.
---
--- If any attachment’s @aspectMask@ to be cleared is not backed by an image
--- view, the clear has no effect on that aspect.
---
--- If an attachment being cleared refers to an image view created with an
--- @aspectMask@ equal to one 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', it
--- is considered to be
--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' for
--- purposes of this command, and /must/ be cleared with the
--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' aspect
--- as specified by
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-plane-promotion image view creation>.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdClearAttachments-aspectMask-07884# If the current render
---     pass instance does not use dynamic rendering, and the @aspectMask@
---     member of any element of @pAttachments@ contains
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',
---     the current subpass instance’s depth-stencil attachment /must/ be
---     either 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' or the
---     attachment @format@ /must/ contain a depth component
---
--- -   #VUID-vkCmdClearAttachments-aspectMask-07885# If the current render
---     pass instance does not use dynamic rendering, and the @aspectMask@
---     member of any element of @pAttachments@ contains
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
---     the current subpass instance’s depth-stencil attachment /must/ be
---     either 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' or the
---     attachment @format@ /must/ contain a stencil component
---
--- -   #VUID-vkCmdClearAttachments-aspectMask-07271# If the @aspectMask@
---     member of any element of @pAttachments@ contains
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',
---     the @colorAttachment@ /must/ be a valid color attachment index in
---     the current render pass instance
---
--- -   #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each
---     element of @pRects@ /must/ have an @extent.width@ greater than @0@
---
--- -   #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each
---     element of @pRects@ /must/ have an @extent.height@ greater than @0@
---
--- -   #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region
---     specified by each element of @pRects@ /must/ be contained within the
---     render area of the current render pass instance
---
--- -   #VUID-vkCmdClearAttachments-pRects-06937# The layers specified by
---     each element of @pRects@ /must/ be contained within every attachment
---     that @pAttachments@ refers to, i.e. for each element of @pRects@,
---     'ClearRect'::@baseArrayLayer@ + 'ClearRect'::@layerCount@ /must/ be
---     less than or equal to the number of layers rendered to in the
---     current render pass instance
---
--- -   #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@
---     member of each element of @pRects@ /must/ not be @0@
---
--- -   #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@
---     is an unprotected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, each attachment to be cleared /must/ not be a
---     protected image
---
--- -   #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@
---     is a protected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, each attachment to be cleared /must/ not be an
---     unprotected image
---
--- -   #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass
---     instance this is recorded in uses multiview, then @baseArrayLayer@
---     /must/ be zero and @layerCount@ /must/ be one
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@
---     /must/ be a valid pointer to an array of @attachmentCount@ valid
---     'ClearAttachment' structures
---
--- -   #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a
---     valid pointer to an array of @rectCount@ 'ClearRect' structures
---
--- -   #VUID-vkCmdClearAttachments-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-vkCmdClearAttachments-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdClearAttachments-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdClearAttachments-attachmentCount-arraylength#
---     @attachmentCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@
---     /must/ be greater than @0@
---
--- == 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_VERSION_1_0 VK_VERSION_1_0>,
--- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'
-cmdClearAttachments :: forall io
-                     . (MonadIO io)
-                    => -- | @commandBuffer@ is the command buffer into which the command will be
-                       -- recorded.
-                       CommandBuffer
-                    -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures
-                       -- defining the attachments to clear and the clear values to use.
-                       ("attachments" ::: Vector ClearAttachment)
-                    -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining
-                       -- regions within each selected attachment to clear.
-                       ("rects" ::: Vector ClearRect)
-                    -> io ()
-cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do
-  let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing
-  let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr
-  pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)
-  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)
-  pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)
-  lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments'
-                                                     (commandBufferHandle (commandBuffer))
-                                                     ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32))
-                                                     (pPAttachments)
-                                                     ((fromIntegral (Data.Vector.length $ (rects)) :: Word32))
-                                                     (pPRects))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdResolveImage
-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()
-
--- | vkCmdResolveImage - Resolve regions of an image
---
--- = Description
---
--- During the resolve the samples corresponding to each pixel location in
--- the source are converted to a single sample before being written to the
--- destination. If the source formats are floating-point or normalized
--- types, the sample values for each pixel are resolved in an
--- implementation-dependent manner. If the source formats are integer
--- types, a single sample’s value is selected for each pixel.
---
--- @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets
--- in texels of the sub-regions of the source and destination image data.
--- @extent@ is the size in texels of the source image to resolve in
--- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a
--- region that is contained within its corresponding image.
---
--- Resolves are done layer by layer starting with @baseArrayLayer@ member
--- of @srcSubresource@ for the source and @dstSubresource@ for the
--- destination. @layerCount@ layers are resolved to the destination image.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdResolveImage-commandBuffer-01837# 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, @srcImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdResolveImage-commandBuffer-01838# 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, @dstImage@ /must/ not be a protected image
---
--- -   #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, @dstImage@ /must/ not be an unprotected image
---
--- -   #VUID-vkCmdResolveImage-pRegions-00255# The union of all source
---     regions, and the union of all destination regions, specified by the
---     elements of @pRegions@, /must/ not overlap in memory
---
--- -   #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a
---     sample count equal to any valid sample count value other than
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
---
--- -   #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a
---     sample count equal to
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
---
--- -   #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@
---     /must/ specify the layout of the image subresources of @srcImage@
---     specified in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
---
--- -   #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@
---     /must/ specify the layout of the image subresources of @dstImage@
---     specified in @pRegions@ at the time this command is executed on a
---     'Vulkan.Core10.Handles.Device'
---
--- -   #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
---
--- -   #VUID-vkCmdResolveImage-dstImage-02003# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @dstImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
---
--- -   #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
---     feature is enabled and the image is created with
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @dstImage@ /must/ contain
---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
---
--- -   #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@
---     /must/ have been created with the same image format
---
--- -   #VUID-vkCmdResolveImage-srcSubresource-01709# The
---     @srcSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
---
--- -   #VUID-vkCmdResolveImage-dstSubresource-01710# The
---     @dstSubresource.mipLevel@ member of each element of @pRegions@
---     /must/ be less than the @mipLevels@ specified in
---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
---
--- -   #VUID-vkCmdResolveImage-srcSubresource-01711# The
---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
---
--- -   #VUID-vkCmdResolveImage-dstSubresource-01712# The
---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
---
--- -   #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@
---     /must/ not have been created with @flags@ containing
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
---
--- -   #VUID-vkCmdResolveImage-srcImage-04446# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
---     of @pRegions@, @srcSubresource.layerCount@ /must/ be @1@
---
--- -   #VUID-vkCmdResolveImage-srcImage-04447# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and
---     @dstSubresource.layerCount@ /must/ be @1@
---
--- -   #VUID-vkCmdResolveImage-srcOffset-00269# For each element of
---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the width of the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdResolveImage-srcOffset-00270# For each element of
---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the height of the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@
---     /must/ be @1@
---
--- -   #VUID-vkCmdResolveImage-srcOffset-00272# For each element of
---     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the depth of the specified @srcSubresource@ of @srcImage@
---
--- -   #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/
---     be @1@
---
--- -   #VUID-vkCmdResolveImage-dstOffset-00274# For each element of
---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the width of the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdResolveImage-dstOffset-00275# For each element of
---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the height of the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@
---     /must/ be @1@
---
--- -   #VUID-vkCmdResolveImage-dstOffset-00277# For each element of
---     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
---     /must/ both be greater than or equal to @0@ and less than or equal
---     to the depth of the specified @dstSubresource@ of @dstImage@
---
--- -   #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/
---     be @1@
---
--- -   #VUID-vkCmdResolveImage-srcImage-06762# @srcImage@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
---     usage flag
---
--- -   #VUID-vkCmdResolveImage-srcImage-06763# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @srcImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'
---
--- -   #VUID-vkCmdResolveImage-dstImage-06764# @dstImage@ /must/ have been
---     created with
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdResolveImage-dstImage-06765# The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
---     of @dstImage@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@
---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
---     value
---
--- -   #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a
---     valid pointer to an array of @regionCount@ valid 'ImageResolve'
---     structures
---
--- -   #VUID-vkCmdResolveImage-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-vkCmdResolveImage-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdResolveImage-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdResolveImage-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@
---     /must/ be greater than @0@
---
--- -   #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,
---     @dstImage@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'
-cmdResolveImage :: forall io
-                 . (MonadIO io)
-                => -- | @commandBuffer@ is the command buffer into which the command will be
-                   -- recorded.
-                   CommandBuffer
-                -> -- | @srcImage@ is the source image.
-                   ("srcImage" ::: Image)
-                -> -- | @srcImageLayout@ is the layout of the source image subresources for the
-                   -- resolve.
-                   ("srcImageLayout" ::: ImageLayout)
-                -> -- | @dstImage@ is the destination image.
-                   ("dstImage" ::: Image)
-                -> -- | @dstImageLayout@ is the layout of the destination image subresources for
-                   -- the resolve.
-                   ("dstImageLayout" ::: ImageLayout)
-                -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures
-                   -- specifying the regions to resolve.
-                   ("regions" ::: Vector ImageResolve)
-                -> io ()
-cmdResolveImage commandBuffer
-                  srcImage
-                  srcImageLayout
-                  dstImage
-                  dstImageLayout
-                  regions = liftIO . evalContT $ do
-  let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing
-  let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr
-  pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)
-  lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage'
-                                                 (commandBufferHandle (commandBuffer))
-                                                 (srcImage)
-                                                 (srcImageLayout)
-                                                 (dstImage)
-                                                 (dstImageLayout)
-                                                 ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
-                                                 (pPRegions))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdSetEvent
-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()
-
--- | vkCmdSetEvent - Set an event object to signaled state
---
--- = Description
---
--- 'cmdSetEvent' behaves identically to
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',
--- except that it does not define an access scope, and /must/ only be used
--- with 'cmdWaitEvents', not
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdSetEvent-stageMask-04090# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-04091# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-04092# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-04093# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-04094# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-04095# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-04096# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdSetEvent-stageMask-07318# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdSetEvent-stageMask-03937# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @stageMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdSetEvent-rayTracingPipeline-07949# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in
---     @stageMask@ /must/ be supported by the capabilities of the queue
---     family specified by the @queueFamilyIndex@ member of the
---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was
---     used to create the 'Vulkan.Core10.Handles.CommandPool' that
---     @commandBuffer@ was allocated from, as specified in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
---
--- -   #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
---
--- -   #VUID-vkCmdSetEvent-commandBuffer-01152# @commandBuffer@’s current
---     device mask /must/ include exactly one physical device
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid
---     'Vulkan.Core10.Handles.Event' handle
---
--- -   #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a
---     valid combination of
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     values
---
--- -   #VUID-vkCmdSetEvent-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-vkCmdSetEvent-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and
---     @event@ /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                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
-cmdSetEvent :: forall io
-             . (MonadIO io)
-            => -- | @commandBuffer@ is the command buffer into which the command is
-               -- recorded.
-               CommandBuffer
-            -> -- | @event@ is the event that will be signaled.
-               Event
-            -> -- | @stageMask@ specifies the
-               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>
-               -- used to determine the first
-               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.
-               ("stageMask" ::: PipelineStageFlags)
-            -> io ()
-cmdSetEvent commandBuffer event stageMask = liftIO $ do
-  let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdSetEventPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing
-  let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr
-  traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent'
-                                      (commandBufferHandle (commandBuffer))
-                                      (event)
-                                      (stageMask))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdResetEvent
-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()
-
--- | vkCmdResetEvent - Reset an event object to non-signaled state
---
--- = Description
---
--- 'cmdResetEvent' behaves identically to
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2'.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdResetEvent-stageMask-04090# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-04091# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-04092# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-04093# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-04094# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-04095# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-04096# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdResetEvent-stageMask-07318# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdResetEvent-stageMask-03937# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @stageMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdResetEvent-rayTracingPipeline-07949# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included
---     in @stageMask@ /must/ be supported by the capabilities of the queue
---     family specified by the @queueFamilyIndex@ member of the
---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was
---     used to create the 'Vulkan.Core10.Handles.CommandPool' that
---     @commandBuffer@ was allocated from, as specified in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
---
--- -   #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
---
--- -   #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution
---     dependency between 'cmdResetEvent' and the execution of any
---     'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter
---
--- -   #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution
---     dependency between 'cmdResetEvent' and the execution of any
---     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'
---     that includes @event@ in its @pEvents@ parameter
---
--- -   #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current
---     device mask /must/ include exactly one physical device
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid
---     'Vulkan.Core10.Handles.Event' handle
---
--- -   #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a
---     valid combination of
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     values
---
--- -   #VUID-vkCmdResetEvent-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-vkCmdResetEvent-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called
---     outside of a render pass instance
---
--- -   #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and
---     @event@ /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                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
-cmdResetEvent :: forall io
-               . (MonadIO io)
-              => -- | @commandBuffer@ is the command buffer into which the command is
-                 -- recorded.
-                 CommandBuffer
-              -> -- | @event@ is the event that will be unsignaled.
-                 Event
-              -> -- | @stageMask@ is a bitmask of
-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                 -- specifying the
-                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>
-                 -- used to determine when the @event@ is unsignaled.
-                 ("stageMask" ::: PipelineStageFlags)
-              -> io ()
-cmdResetEvent commandBuffer event stageMask = liftIO $ do
-  let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdResetEventPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing
-  let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr
-  traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent'
-                                        (commandBufferHandle (commandBuffer))
-                                        (event)
-                                        (stageMask))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdWaitEventsUnsafe
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()
-
-foreign import ccall
-  "dynamic" mkVkCmdWaitEventsSafe
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()
-
--- | cmdWaitEvents with selectable safeness
-cmdWaitEventsSafeOrUnsafe :: forall io
-                           . (MonadIO io)
-                          => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())
-                          -> -- | @commandBuffer@ is the command buffer into which the command is
-                             -- recorded.
-                             CommandBuffer
-                          -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.
-                             ("events" ::: Vector Event)
-                          -> -- | @srcStageMask@ is a bitmask of
-                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                             -- specifying the
-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.
-                             ("srcStageMask" ::: PipelineStageFlags)
-                          -> -- | @dstStageMask@ is a bitmask of
-                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                             -- specifying the
-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.
-                             ("dstStageMask" ::: PipelineStageFlags)
-                          -> -- | @pMemoryBarriers@ is a pointer to an array of
-                             -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
-                             ("memoryBarriers" ::: Vector MemoryBarrier)
-                          -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
-                             -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
-                             ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)
-                          -> -- | @pImageMemoryBarriers@ is a pointer to an array of
-                             -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
-                             ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
-                          -> io ()
-cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer
-                                              events
-                                              srcStageMask
-                                              dstStageMask
-                                              memoryBarriers
-                                              bufferMemoryBarriers
-                                              imageMemoryBarriers = liftIO . evalContT $ do
-  let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing
-  let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr
-  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)
-  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)
-  pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)
-  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)
-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)
-  lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents'
-                                               (commandBufferHandle (commandBuffer))
-                                               ((fromIntegral (Data.Vector.length $ (events)) :: Word32))
-                                               (pPEvents)
-                                               (srcStageMask)
-                                               (dstStageMask)
-                                               ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))
-                                               (pPMemoryBarriers)
-                                               ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))
-                                               (pPBufferMemoryBarriers)
-                                               ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))
-                                               (forgetExtensions (pPImageMemoryBarriers)))
-  pure $ ()
-
--- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory
---
--- = Description
---
--- 'cmdWaitEvents' is largely similar to
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',
--- but /can/ only wait on signal operations defined by 'cmdSetEvent'. As
--- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines
--- the first access scope for each event signal operation in addition to
--- its own access scopes.
---
--- Note
---
--- Since 'cmdSetEvent' does not have any dependency information beyond a
--- stage mask, implementations do not have the same opportunity to perform
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>
--- or
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>
--- in advance as they do with
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2' and
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.
---
--- When 'cmdWaitEvents' is submitted to a queue, it defines a memory
--- dependency between prior event signal operations on the same queue or
--- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to
--- wait on event signal operations occurring on other queues.
---
--- The first synchronization scope only includes event signal operations
--- that operate on members of @pEvents@, and the operations that
--- happened-before the event signal operations. Event signal operations
--- performed by 'cmdSetEvent' that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
--- are included in the first synchronization scope, if the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>
--- pipeline stage in their @stageMask@ parameter is
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>
--- than or equal to the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>
--- pipeline stage in @srcStageMask@. Event signal operations performed by
--- 'Vulkan.Core10.Event.setEvent' are only included in the first
--- synchronization scope if
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is
--- included in @srcStageMask@.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands that occur later in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
--- The second synchronization scope is limited to operations on the
--- pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
--- specified by @dstStageMask@.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--- is limited to accesses in the pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>
--- specified by @srcStageMask@. Within that, the first access scope only
--- includes the first access scopes defined by elements of the
--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
--- arrays, which each define a set of
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
--- If no memory barriers are specified, then the first access scope
--- includes no accesses.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--- is limited to accesses in the pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
--- specified by @dstStageMask@. Within that, the second access scope only
--- includes the second access scopes defined by elements of the
--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
--- arrays, which each define a set of
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
--- If no memory barriers are specified, then the second access scope
--- includes no accesses.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04090# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04091# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04092# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04093# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04094# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04095# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-07318# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-03937# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @srcStageMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdWaitEvents-rayTracingPipeline-07949# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04090# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04091# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04092# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04093# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04094# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04095# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-07318# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-03937# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @dstStageMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdWaitEvents-rayTracingPipeline-07949# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@
---     member of each element of @pMemoryBarriers@ /must/ only include
---     access flags that are supported by one or more of the pipeline
---     stages in @srcStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@
---     member of each element of @pMemoryBarriers@ /must/ only include
---     access flags that are supported by one or more of the pipeline
---     stages in @dstStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element
---     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @srcQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @srcAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @srcStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element
---     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @dstQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @dstAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @dstStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of
---     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @srcQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @srcAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @srcStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of
---     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @dstQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @dstAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @dstStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage
---     included in @srcStageMask@ /must/ be supported by the capabilities
---     of the queue family specified by the @queueFamilyIndex@ member of
---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
---     @commandBuffer@ was allocated from, as specified in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage
---     included in @dstStageMask@ /must/ be supported by the capabilities
---     of the queue family specified by the @queueFamilyIndex@ member of
---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
---     @commandBuffer@ was allocated from, as specified in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be
---     the bitwise OR of the @stageMask@ parameter used in previous calls
---     to 'cmdSetEvent' with any of the elements of @pEvents@ and
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
---     if any of the elements of @pEvents@ was set using
---     'Vulkan.Core10.Event.setEvent'
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-07308# If 'cmdWaitEvents' is
---     being called inside a render pass instance, @srcStageMask@ /must/
---     not include
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
---
--- -   #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any
---     element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/
---     be equal
---
--- -   #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current
---     device mask /must/ include exactly one physical device
---
--- -   #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/
---     not have been signaled by
---     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid
---     pointer to an array of @eventCount@ valid
---     'Vulkan.Core10.Handles.Event' handles
---
--- -   #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/
---     be a valid combination of
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     values
---
--- -   #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/
---     be a valid combination of
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     values
---
--- -   #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If
---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid
---     pointer to an array of @memoryBarrierCount@ valid
---     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures
---
--- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If
---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@
---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@
---     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures
---
--- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If
---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/
---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid
---     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures
---
--- -   #VUID-vkCmdWaitEvents-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-vkCmdWaitEvents-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be
---     greater than @0@
---
--- -   #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the
---     elements of @pEvents@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',
--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
-cmdWaitEvents :: forall io
-               . (MonadIO io)
-              => -- | @commandBuffer@ is the command buffer into which the command is
-                 -- recorded.
-                 CommandBuffer
-              -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.
-                 ("events" ::: Vector Event)
-              -> -- | @srcStageMask@ is a bitmask of
-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                 -- specifying the
-                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.
-                 ("srcStageMask" ::: PipelineStageFlags)
-              -> -- | @dstStageMask@ is a bitmask of
-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                 -- specifying the
-                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.
-                 ("dstStageMask" ::: PipelineStageFlags)
-              -> -- | @pMemoryBarriers@ is a pointer to an array of
-                 -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
-                 ("memoryBarriers" ::: Vector MemoryBarrier)
-              -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
-                 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
-                 ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)
-              -> -- | @pImageMemoryBarriers@ is a pointer to an array of
-                 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
-                 ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
-              -> io ()
-cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe
-
--- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call
-cmdWaitEventsSafe :: forall io
-                   . (MonadIO io)
-                  => -- | @commandBuffer@ is the command buffer into which the command is
-                     -- recorded.
-                     CommandBuffer
-                  -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.
-                     ("events" ::: Vector Event)
-                  -> -- | @srcStageMask@ is a bitmask of
-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                     -- specifying the
-                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.
-                     ("srcStageMask" ::: PipelineStageFlags)
-                  -> -- | @dstStageMask@ is a bitmask of
-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                     -- specifying the
-                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.
-                     ("dstStageMask" ::: PipelineStageFlags)
-                  -> -- | @pMemoryBarriers@ is a pointer to an array of
-                     -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
-                     ("memoryBarriers" ::: Vector MemoryBarrier)
-                  -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
-                     -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
-                     ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)
-                  -> -- | @pImageMemoryBarriers@ is a pointer to an array of
-                     -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
-                     ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
-                  -> io ()
-cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdPipelineBarrier
-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()
-
--- | vkCmdPipelineBarrier - Insert a memory dependency
---
--- = Description
---
--- 'cmdPipelineBarrier' operates almost identically to
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',
--- except that the scopes and barriers are defined as direct parameters
--- rather than being defined by an
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo'.
---
--- When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory
--- dependency between commands that were submitted to the same queue before
--- it, and those submitted to the same queue after it.
---
--- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the
--- first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the
--- first synchronization scope includes only commands that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
--- within the same subpass. In either case, the first synchronization scope
--- is limited to operations on the pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>
--- specified by @srcStageMask@.
---
--- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the
--- second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands that occur later in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the
--- second synchronization scope includes only commands that occur later in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
--- within the same subpass. In either case, the second synchronization
--- scope is limited to operations on the pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
--- specified by @dstStageMask@.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--- is limited to accesses in the pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>
--- specified by @srcStageMask@. Within that, the first access scope only
--- includes the first access scopes defined by elements of the
--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
--- arrays, which each define a set of
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
--- If no memory barriers are specified, then the first access scope
--- includes no accesses.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--- is limited to accesses in the pipeline stages determined by the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
--- specified by @dstStageMask@. Within that, the second access scope only
--- includes the second access scopes defined by elements of the
--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
--- arrays, which each define a set of
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
--- If no memory barriers are specified, then the second access scope
--- includes no accesses.
---
--- If @dependencyFlags@ includes
--- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then
--- any dependency between
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>
--- pipeline stages is
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>
--- - otherwise it is
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-07318# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @srcStageMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-07318# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @dstStageMask@ /must/ not be @0@
---
--- -   #VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@
---     member of each element of @pMemoryBarriers@ /must/ only include
---     access flags that are supported by one or more of the pipeline
---     stages in @srcStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@
---     member of each element of @pMemoryBarriers@ /must/ only include
---     access flags that are supported by one or more of the pipeline
---     stages in @dstStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any
---     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @srcQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @srcAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @srcStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any
---     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @dstQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @dstAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @dstStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any
---     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @srcQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @srcAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @srcStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any
---     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
---     @dstQueueFamilyIndex@ members are equal, or if its
---     @dstQueueFamilyIndex@ is the queue family index that was used to
---     create the command pool that @commandBuffer@ was allocated from,
---     then its @dstAccessMask@ member /must/ only contain access flags
---     that are supported by one or more of the pipeline stages in
---     @dstStageMask@, as specified in the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
---
--- -   #VUID-vkCmdPipelineBarrier-None-07889# If 'cmdPipelineBarrier' is
---     called within a render pass instance using a
---     'Vulkan.Core10.Handles.RenderPass' object, the render pass /must/
---     have been created with at least one subpass dependency that
---     expresses a dependency from the current subpass to itself, does not
---     include
---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' if
---     this command does not, does not include
---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'
---     if this command does not, and has
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>
---     that are all supersets of the scopes defined in this command
---
--- -   #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If
---     'cmdPipelineBarrier' is called within a render pass instance using a
---     'Vulkan.Core10.Handles.RenderPass' object, it /must/ not include any
---     buffer memory barriers
---
--- -   #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is
---     called within a render pass instance using a
---     'Vulkan.Core10.Handles.RenderPass' object, the @image@ member of any
---     image memory barrier included in this command /must/ be an
---     attachment used in the current subpass both as an input attachment,
---     and as either a color or depth\/stencil attachment
---
--- -   #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'
---     is called within a render pass instance, the @oldLayout@ and
---     @newLayout@ members of any image memory barrier included in this
---     command /must/ be equal
---
--- -   #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If
---     'cmdPipelineBarrier' is called within a render pass instance, the
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any
---     memory barrier included in this command /must/ be equal
---
--- -   #VUID-vkCmdPipelineBarrier-None-07890# If 'cmdPipelineBarrier' is
---     called within a render pass instance, and the source stage masks of
---     any memory barriers include
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,
---     destination stage masks of all memory barriers /must/ only include
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>
---
--- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-07891# If
---     'cmdPipelineBarrier' is called within a render pass instance, and
---     and the source stage masks of any memory barriers include
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,
---     then @dependencyFlags@ /must/ include
---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-None-07892# If 'cmdPipelineBarrier' is
---     called within a render pass instance, the source and destination
---     stage masks of any memory barriers /must/ only include graphics
---     pipeline stages
---
--- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If
---     'cmdPipelineBarrier' is called outside of a render pass instance,
---     the dependency flags /must/ not include
---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-None-07893# If 'cmdPipelineBarrier' is
---     called inside a render pass instance, and there is more than one
---     view in the current subpass, dependency flags /must/ include
---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'
---
--- -   #VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718# If
---     'cmdPipelineBarrier' is called within a render pass instance and
---     none of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageColorReadAccess shaderTileImageColorReadAccess>,
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess>,
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess>
---     features are enabled, the render pass /must/ not have been started
---     with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---
--- -   #VUID-vkCmdPipelineBarrier-None-08719# If 'cmdPipelineBarrier' is
---     called within a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     it /must/ adhere to the restrictions in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage Explicit Render Pass Tile Image Access Synchronization>
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage
---     included in @srcStageMask@ /must/ be supported by the capabilities
---     of the queue family specified by the @queueFamilyIndex@ member of
---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
---     @commandBuffer@ was allocated from, as specified in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage
---     included in @dstStageMask@ /must/ be supported by the capabilities
---     of the queue family specified by the @queueFamilyIndex@ member of
---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
---     @commandBuffer@ was allocated from, as specified in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     values
---
--- -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     values
---
--- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#
---     @dependencyFlags@ /must/ be a valid combination of
---     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values
---
--- -   #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If
---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid
---     pointer to an array of @memoryBarrierCount@ valid
---     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures
---
--- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If
---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@
---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@
---     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures
---
--- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If
---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/
---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid
---     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures
---
--- -   #VUID-vkCmdPipelineBarrier-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-vkCmdPipelineBarrier-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, compute, decode,
---     or encode operations
---
--- == 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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Synchronization                                                                                                                        |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',
--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
-cmdPipelineBarrier :: forall io
-                    . (MonadIO io)
-                   => -- | @commandBuffer@ is the command buffer into which the command is
-                      -- recorded.
-                      CommandBuffer
-                   -> -- | @srcStageMask@ is a bitmask of
-                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                      -- specifying the
-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.
-                      ("srcStageMask" ::: PipelineStageFlags)
-                   -> -- | @dstStageMask@ is a bitmask of
-                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
-                      -- specifying the
-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.
-                      ("dstStageMask" ::: PipelineStageFlags)
-                   -> -- | @dependencyFlags@ is a bitmask of
-                      -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying
-                      -- how execution and memory dependencies are formed.
-                      DependencyFlags
-                   -> -- | @pMemoryBarriers@ is a pointer to an array of
-                      -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
-                      ("memoryBarriers" ::: Vector MemoryBarrier)
-                   -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
-                      -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
-                      ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)
-                   -> -- | @pImageMemoryBarriers@ is a pointer to an array of
-                      -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
-                      ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
-                   -> io ()
-cmdPipelineBarrier commandBuffer
-                     srcStageMask
-                     dstStageMask
-                     dependencyFlags
-                     memoryBarriers
-                     bufferMemoryBarriers
-                     imageMemoryBarriers = liftIO . evalContT $ do
-  let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing
-  let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr
-  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)
-  pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)
-  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)
-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)
-  lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier'
-                                                    (commandBufferHandle (commandBuffer))
-                                                    (srcStageMask)
-                                                    (dstStageMask)
-                                                    (dependencyFlags)
-                                                    ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))
-                                                    (pPMemoryBarriers)
-                                                    ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))
-                                                    (pPBufferMemoryBarriers)
-                                                    ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))
-                                                    (forgetExtensions (pPImageMemoryBarriers)))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBeginQuery
-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()
-
--- | vkCmdBeginQuery - Begin a query
---
--- = Description
---
--- If the @queryType@ of the pool is
--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@
--- contains
--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an
--- implementation /must/ return a result that matches the actual number of
--- samples passed. This is described in more detail in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.
---
--- Calling 'cmdBeginQuery' is equivalent to calling
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'
--- with the @index@ parameter set to zero.
---
--- After beginning a query, that query is considered /active/ within the
--- command buffer it was called in until that same query is ended. Queries
--- active in a primary command buffer when secondary command buffers are
--- executed are considered active for those secondary command buffers.
---
--- Furthermore, if the query is started within a video coding scope, the
--- following command buffer states are initialized for the query type:
---
--- -   #queries-operation-active-query-index# The /active_query_index/ is
---     set to the value specified by @query@.
---
--- -   #queries-operation-last-activatable-query-index# The /last
---     activatable query index/ is also set to the value specified by
---     @query@.
---
--- Each
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-coding video coding operation>
--- stores a result to the query corresponding to the current active query
--- index, followed by incrementing the active query index. If the active
--- query index gets incremented past the last activatable query index,
--- issuing any further video coding operations results in undefined
--- behavior.
---
--- Note
---
--- In practice, this means that currently no more than a single video
--- coding operation /must/ be issued between a begin and end query pair.
---
--- This command defines an execution dependency between other query
--- commands that reference the same query.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @query@ that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @query@ that occur later in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
---
--- The operation of this command happens after the first scope and happens
--- before the second scope.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command
---     /must/ be unavailable
---
--- -   #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to
---     create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
---
--- -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to
---     create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'
---     or
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'
---
--- -   #VUID-vkCmdBeginQuery-queryType-06741# The @queryType@ used to
---     create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'
---     or
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'
---
--- -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to
---     create @queryPool@ /must/ not be
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'
---
--- -   #VUID-vkCmdBeginQuery-queryType-00800# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise>
---     feature is not enabled, or the @queryType@ used to create
---     @queryPool@ was not
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/
---     not contain
---     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'
---
--- -   #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the
---     number of queries in @queryPool@
---
--- -   #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and
---     any of the @pipelineStatistics@ indicate graphics operations, the
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and
---     any of the @pipelineStatistics@ indicate compute operations, the
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support compute operations
---
--- -   #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/
---     not be a protected command buffer
---
--- -   #VUID-vkCmdBeginQuery-query-00808# If called within a render pass
---     instance, the sum of @query@ and the number of bits set in the
---     current subpass’s view mask /must/ be less than or equal to the
---     number of queries in @queryPool@
---
--- -   #VUID-vkCmdBeginQuery-queryType-07126# If the @queryType@ used to
---     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ have been created with a queue family index
---     that supports
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-result-status-only result status queries>,
---     as indicated by
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>::@queryResultStatusSupport@
---
--- -   #VUID-vkCmdBeginQuery-None-07127# If there is a bound video session,
---     then there /must/ be no
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>
---     queries
---
--- -   #VUID-vkCmdBeginQuery-queryType-07128# If the @queryType@ used to
---     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ and
---     there is a bound video session, then @queryPool@ /must/ have been
---     created with a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one
---     specified in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@
---     the bound video session was created with
---
--- -   #VUID-vkCmdBeginQuery-queryType-04862# If the @queryType@ used to
---     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,
---     then the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@
---     was allocated from /must/ support
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>
---
--- -   #VUID-vkCmdBeginQuery-queryType-07129# If the @queryType@ used to
---     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,
---     then there /must/ be a bound video session
---
--- -   #VUID-vkCmdBeginQuery-queryType-07130# If the @queryType@ used to
---     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@ and
---     there is a bound video session, then @queryPool@ /must/ have been
---     created with a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one
---     specified in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@
---     the bound video session was created with
---
--- -   #VUID-vkCmdBeginQuery-queryType-07131# If the @queryType@ used to
---     create @queryPool@ was not @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ or
---     @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@, then there /must/ be no
---     bound video session
---
--- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been
---     created with a @queryType@ that differs from that of any queries
---     that are
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
---     within @commandBuffer@
---
--- -   #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
---     then
---     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@
---     /must/ be supported
---
--- -   #VUID-vkCmdBeginQuery-queryType-06687# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to
---     create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
---     then
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>
---     /must/ be enabled
---
--- -   #VUID-vkCmdBeginQuery-queryPool-07289# If @queryPool@ was created
---     with a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     then the
---     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@queueFamilyIndex@
---     @queryPool@ was created with /must/ equal the queue family index of
---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from
---
--- -   #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created
---     with a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>
---     /must/ have been held before
---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on
---     @commandBuffer@
---
--- -   #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created
---     with a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
---     one of the counters used to create @queryPool@ was
---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',
---     the query begin /must/ be the first recorded command in
---     @commandBuffer@
---
--- -   #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created
---     with a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
---     one of the counters used to create @queryPool@ was
---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',
---     the begin command /must/ not be recorded within a render pass
---     instance
---
--- -   #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created
---     with a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
---     another query pool with a @queryType@
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has
---     been used within @commandBuffer@, its parent primary command buffer
---     or secondary command buffer recorded within the same parent primary
---     command buffer as @commandBuffer@, the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a
---     @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     this command /must/ not be recorded in a command buffer that, either
---     directly or through secondary command buffers, also contains a
---     'cmdResetQueryPool' command affecting the same query
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a
---     valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid
---     combination of
---     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'
---     values
---
--- -   #VUID-vkCmdBeginQuery-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-vkCmdBeginQuery-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and
---     @queryPool@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',
--- 'Vulkan.Core10.Handles.QueryPool',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',
--- 'cmdEndQuery',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'
-cmdBeginQuery :: forall io
-               . (MonadIO io)
-              => -- | @commandBuffer@ is the command buffer into which this command will be
-                 -- recorded.
-                 CommandBuffer
-              -> -- | @queryPool@ is the query pool that will manage the results of the query.
-                 QueryPool
-              -> -- | @query@ is the query index within the query pool that will contain the
-                 -- results.
-                 ("query" ::: Word32)
-              -> -- | @flags@ is a bitmask of
-                 -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'
-                 -- specifying constraints on the types of queries that /can/ be performed.
-                 QueryControlFlags
-              -> io ()
-cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do
-  let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdBeginQueryPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing
-  let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr
-  traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery'
-                                        (commandBufferHandle (commandBuffer))
-                                        (queryPool)
-                                        (query)
-                                        (flags))
-  pure $ ()
-
--- | This function will call the supplied action between calls to
--- 'cmdBeginQuery' and 'cmdEndQuery'
---
--- Note that 'cmdEndQuery' is *not* called if an exception is thrown by the
--- inner action.
-cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r
-cmdUseQuery commandBuffer queryPool query flags a =
-  (cmdBeginQuery commandBuffer
-                   queryPool
-                   query
-                   flags) *> a <* (cmdEndQuery commandBuffer queryPool query)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdEndQuery
-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()
-
--- | vkCmdEndQuery - Ends a query
---
--- = Description
---
--- The command completes the query in @queryPool@ identified by @query@,
--- and marks it as available.
---
--- This command defines an execution dependency between other query
--- commands that reference the same query.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @query@ that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes only the operation of this command.
---
--- Calling 'cmdEndQuery' is equivalent to calling
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with
--- the @index@ parameter set to zero.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command
---     /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
---
--- -   #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the
---     number of queries in @queryPool@
---
--- -   #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not
---     be a protected command buffer
---
--- -   #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a
---     render pass instance, the sum of @query@ and the number of bits set
---     in the current subpass’s view mask /must/ be less than or equal to
---     the number of queries in @queryPool@
---
--- -   #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with
---     a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
---     one or more of the counters used to create @queryPool@ was
---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',
---     the 'cmdEndQuery' /must/ be the last recorded command in
---     @commandBuffer@
---
--- -   #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with
---     a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
---     one or more of the counters used to create @queryPool@ was
---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',
---     the 'cmdEndQuery' /must/ not be recorded within a render pass
---     instance
---
--- -   [[VUID-{refpage}-None-07007]] If called within a subpass of a render
---     pass instance, the corresponding 'cmdBeginQuery'* command /must/
---     have been called previously within the same subpass
---
--- -   [[VUID-{refpage}-None-07008]] If called outside of a render pass
---     instance, the corresponding 'cmdBeginQuery'* command /must/ have
---     been called outside of a render pass instance
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a
---     valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdEndQuery-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-vkCmdEndQuery-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, or encode
---     operations
---
--- -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and
---     @queryPool@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Handles.QueryPool', 'cmdBeginQuery',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'
-cmdEndQuery :: forall io
-             . (MonadIO io)
-            => -- | @commandBuffer@ is the command buffer into which this command will be
-               -- recorded.
-               CommandBuffer
-            -> -- | @queryPool@ is the query pool that is managing the results of the query.
-               QueryPool
-            -> -- | @query@ is the query index within the query pool where the result is
-               -- stored.
-               ("query" ::: Word32)
-            -> io ()
-cmdEndQuery commandBuffer queryPool query = liftIO $ do
-  let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdEndQueryPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing
-  let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr
-  traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery'
-                                      (commandBufferHandle (commandBuffer))
-                                      (queryPool)
-                                      (query))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdResetQueryPool
-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()
-
--- | vkCmdResetQueryPool - Reset queries in a query pool
---
--- = Description
---
--- When executed on a queue, this command sets the status of query indices
--- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.
---
--- This command defines an execution dependency between other query
--- commands that reference the same query.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @firstQuery@ and @queryCount@ that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @firstQuery@ and @queryCount@ that occur later in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
---
--- The operation of this command happens after the first scope and happens
--- before the second scope.
---
--- If the @queryType@ used to create @queryPool@ was
--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this
--- command sets the status of query indices [@firstQuery@, @firstQuery@ +
--- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as
--- indicated by a call to
--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.
---
--- Note
---
--- Because 'cmdResetQueryPool' resets all the passes of the indicated
--- queries, applications must not record a 'cmdResetQueryPool' command for
--- a @queryPool@ created with
--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a
--- command buffer that needs to be submitted multiple times as indicated by
--- a call to
--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.
--- Otherwise applications will never be able to complete the recorded
--- queries.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be
---     less than the number of queries in @queryPool@
---
--- -   #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@
---     and @queryCount@ /must/ be less than or equal to the number of
---     queries in @queryPool@
---
--- -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the
---     command /must/ not be active
---
--- -   #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was
---     created with
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     this command /must/ not be recorded in a command buffer that, either
---     directly or through secondary command buffers, also contains begin
---     commands for a query from the set of queries [@firstQuery@,
---     @firstQuery@ + @queryCount@ - 1]
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be
---     a valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdResetQueryPool-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-vkCmdResetQueryPool-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, compute, decode, encode, or
---     opticalflow operations
---
--- -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdResetQueryPool-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and
---     @queryPool@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'
-cmdResetQueryPool :: forall io
-                   . (MonadIO io)
-                  => -- | @commandBuffer@ is the command buffer into which this command will be
-                     -- recorded.
-                     CommandBuffer
-                  -> -- | @queryPool@ is the handle of the query pool managing the queries being
-                     -- reset.
-                     QueryPool
-                  -> -- | @firstQuery@ is the initial query index to reset.
-                     ("firstQuery" ::: Word32)
-                  -> -- | @queryCount@ is the number of queries to reset.
-                     ("queryCount" ::: Word32)
-                  -> io ()
-cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do
-  let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing
-  let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr
-  traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool'
-                                            (commandBufferHandle (commandBuffer))
-                                            (queryPool)
-                                            (firstQuery)
-                                            (queryCount))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdWriteTimestamp
-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()
-
--- | vkCmdWriteTimestamp - Write a device timestamp into a query object
---
--- = Description
---
--- When 'cmdWriteTimestamp' is submitted to a queue, it defines an
--- execution dependency on commands that were submitted before it, and
--- writes a timestamp to a query pool.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
--- The synchronization scope is limited to operations on the pipeline stage
--- specified by @pipelineStage@.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes only the timestamp write operation.
---
--- When the timestamp value is written, the availability status of the
--- query is set to available.
---
--- Note
---
--- If an implementation is unable to detect completion and latch the timer
--- immediately after @stage@ has completed, it /may/ instead do so at any
--- logically later stage.
---
--- Comparisons between timestamps are not meaningful if the timestamps are
--- written by commands submitted to different queues.
---
--- Note
---
--- An example of such a comparison is subtracting an older timestamp from a
--- newer one to determine the execution time of a sequence of commands.
---
--- If 'cmdWriteTimestamp' is called while executing a render pass instance
--- that has multiview enabled, the timestamp uses N consecutive query
--- indices in the query pool (starting at @query@) where N is the number of
--- bits set in the view mask of the subpass the command is executed in. The
--- resulting query values are determined by an implementation-dependent
--- choice of one of the following behaviors:
---
--- -   The first query is a timestamp value and (if more than one bit is
---     set in the view mask) zero is written to the remaining queries. If
---     two timestamps are written in the same subpass, the sum of the
---     execution time of all views between those commands is the difference
---     between the first query written by each command.
---
--- -   All N queries are timestamp values. If two timestamps are written in
---     the same subpass, the sum of the execution time of all views between
---     those commands is the sum of the difference between corresponding
---     queries written by each command. The difference between
---     corresponding queries /may/ be the execution time of a single view.
---
--- In either case, the application /can/ sum the differences between all N
--- queries to determine the total execution time.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@
---     /must/ be a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>
---     for the queue family that was used to create the command pool that
---     @commandBuffer@ was allocated from
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   #VUID-vkCmdWriteTimestamp-shadingRateImage-07314# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     are enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---
--- -   #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
---     feature is not enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'
---
--- -   #VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943# If neither the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
---     extension or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
---     are enabled, @pipelineStage@ /must/ not be
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
---
--- -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have
---     been created with a @queryType@ of
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
---
--- -   #VUID-vkCmdWriteTimestamp-queryPool-00828# The query identified by
---     @queryPool@ and @query@ /must/ be /unavailable/
---
--- -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command
---     pool’s queue family /must/ support a non-zero @timestampValidBits@
---
--- -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than
---     the number of queries in @queryPool@
---
--- -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the
---     command /must/ be unavailable
---
--- -   #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is
---     called within a render pass instance, the sum of @query@ and the
---     number of bits set in the current subpass’s view mask /must/ be less
---     than or equal to the number of queries in @queryPool@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@
---     /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
---     value
---
--- -   #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be
---     a valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdWriteTimestamp-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-vkCmdWriteTimestamp-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, compute, decode,
---     encode, or opticalflow operations
---
--- -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and
---     @queryPool@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',
--- 'Vulkan.Core10.Handles.QueryPool'
-cmdWriteTimestamp :: forall io
-                   . (MonadIO io)
-                  => -- | @commandBuffer@ is the command buffer into which the command will be
-                     -- recorded.
-                     CommandBuffer
-                  -> -- | @pipelineStage@ is a
-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,
-                     -- specifying a stage of the pipeline.
-                     PipelineStageFlagBits
-                  -> -- | @queryPool@ is the query pool that will manage the timestamp.
-                     QueryPool
-                  -> -- | @query@ is the query within the query pool that will contain the
-                     -- timestamp.
-                     ("query" ::: Word32)
-                  -> io ()
-cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do
-  let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdWriteTimestampPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing
-  let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr
-  traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp'
-                                            (commandBufferHandle (commandBuffer))
-                                            (pipelineStage)
-                                            (queryPool)
-                                            (query))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdCopyQueryPoolResults
-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()
-
--- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool
--- to a buffer object
---
--- = Description
---
--- Any results written for a query are written according to
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.
---
--- Results for any query in @queryPool@ identified by @firstQuery@ and
--- @queryCount@ that is available are copied to @dstBuffer@.
---
--- If
--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
--- is set, results for all queries in @queryPool@ identified by
--- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an
--- extra availability value written directly after the results of each
--- query and interpreted as an unsigned integer. A value of zero indicates
--- that the results are not yet available, otherwise the query is complete
--- and results are available.
---
--- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries
--- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to
--- @dstBuffer@, along with an extra status value written directly after the
--- results of each query and interpreted as a signed integer. A value of
--- zero indicates that the results are not yet available. Positive values
--- indicate that the operations within the query completed successfully,
--- and the query results are valid. Negative values indicate that the
--- operations within the query completed unsuccessfully.
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>
--- defines specific meaning for values returned here, though
--- implementations are free to return other values.
---
--- Results for any available query written by this command are final and
--- represent the final result of the query. If
--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is
--- set, then for any query that is unavailable, an intermediate result
--- between zero and the final result value is written for that query.
--- Otherwise, any result written by this command is undefined.
---
--- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,
--- results and availability or status values for all queries are written as
--- an array of 64-bit values. If the @queryPool@ was created with
--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
--- results for each query are written as an array of the type indicated by
--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@
--- for the counter being queried. Otherwise, results and availability or
--- status values are written as an array of 32-bit values. If an unsigned
--- integer query’s value overflows the result type, the value /may/ either
--- wrap or saturate. If a signed integer query’s value overflows the result
--- type, the value is undefined. If a floating point query’s value is not
--- representable as the result type, the value is undefined.
---
--- This command defines an execution dependency between other query
--- commands that reference the same query.
---
--- The first
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @query@ that occur earlier in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
--- If @flags@ does not include
--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',
--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',
--- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.
---
--- The second
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--- includes all commands which reference the queries in @queryPool@
--- indicated by @query@ that occur later in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
---
--- The operation of this command happens after the first scope and happens
--- before the second scope.
---
--- 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and
--- its writes to buffer memory /must/ be synchronized using
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'
--- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'
--- before using the results.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/
---     be less than the size of @dstBuffer@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@
---     /must/ be less than the number of queries in @queryPool@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of
---     @firstQuery@ and @queryCount@ /must/ be less than or equal to the
---     number of queries in @queryPool@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-flags-00822# If
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not
---     set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of
---     @4@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-flags-00823# If
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set
---     in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/
---     have enough storage, from @dstOffset@, to contain the result of each
---     query, as described
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>
---
--- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/
---     have been created with
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
---     usage flag
---
--- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/
---     not contain
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@
---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     @flags@ /must/ not contain
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'
---     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     the @queryPool@ /must/ have been submitted once for each pass as
---     retrieved via a call to
---     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-02734#
---     'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@
---     used to create @queryPool@ was
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@
---     used to create @queryPool@ was
---     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include
---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@
---
--- -   #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes
---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
---
--- -   #VUID-vkCmdCopyQueryPoolResults-None-07429# All queries used by the
---     command /must/ not be active
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@
---     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle
---
--- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a
---     valid combination of
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values
---
--- -   #VUID-vkCmdCopyQueryPoolResults-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-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only
---     be called outside of a render pass instance
---
--- -   #VUID-vkCmdCopyQueryPoolResults-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of
---     @commandBuffer@, @dstBuffer@, and @queryPool@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core10.Handles.QueryPool',
--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'
-cmdCopyQueryPoolResults :: forall io
-                         . (MonadIO io)
-                        => -- | @commandBuffer@ is the command buffer into which this command will be
-                           -- recorded.
-                           CommandBuffer
-                        -> -- | @queryPool@ is the query pool managing the queries containing the
-                           -- desired results.
-                           QueryPool
-                        -> -- | @firstQuery@ is the initial query index.
-                           ("firstQuery" ::: Word32)
-                        -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@
-                           -- together define a range of queries.
-                           ("queryCount" ::: Word32)
-                        -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive
-                           -- the results of the copy command.
-                           ("dstBuffer" ::: Buffer)
-                        -> -- | @dstOffset@ is an offset into @dstBuffer@.
-                           ("dstOffset" ::: DeviceSize)
-                        -> -- | @stride@ is the stride in bytes between results for individual queries
-                           -- within @dstBuffer@. The required size of the backing memory for
-                           -- @dstBuffer@ is determined as described above for
-                           -- 'Vulkan.Core10.Query.getQueryPoolResults'.
-                           ("stride" ::: DeviceSize)
-                        -> -- | @flags@ is a bitmask of
-                           -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying
-                           -- how and when results are returned.
-                           QueryResultFlags
-                        -> io ()
-cmdCopyQueryPoolResults commandBuffer
-                          queryPool
-                          firstQuery
-                          queryCount
-                          dstBuffer
-                          dstOffset
-                          stride
-                          flags = liftIO $ do
-  let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing
-  let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr
-  traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults'
-                                                  (commandBufferHandle (commandBuffer))
-                                                  (queryPool)
-                                                  (firstQuery)
-                                                  (queryCount)
-                                                  (dstBuffer)
-                                                  (dstOffset)
-                                                  (stride)
-                                                  (flags))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdPushConstants
-  :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()
-
--- | vkCmdPushConstants - Update the values of push constants
---
--- = Description
---
--- When a command buffer begins recording, all push constant values are
--- undefined. Reads of undefined push constant values by the executing
--- shader return undefined values.
---
--- Push constant values /can/ be updated incrementally, causing shader
--- stages in @stageFlags@ to read the new data from @pValues@ for push
--- constants modified by this command, while still reading the previous
--- data for push constants not modified by this command. When a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline command>
--- is issued, the bound pipeline’s layout /must/ be compatible with the
--- layouts used to set the values of all push constants in the pipeline
--- layout’s push constant ranges, as described in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.
--- Binding a pipeline with a layout that is not compatible with the push
--- constant layout does not disturb the push constant values.
---
--- Note
---
--- As @stageFlags@ needs to include all flags the relevant push constant
--- ranges were created with, any flags that are not supported by the queue
--- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate
--- @commandBuffer@ was created on are ignored.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdPushConstants-offset-01795# For each byte in the range
---     specified by @offset@ and @size@ and for each shader stage in
---     @stageFlags@, there /must/ be a push constant range in @layout@ that
---     includes that byte and that stage
---
--- -   #VUID-vkCmdPushConstants-offset-01796# For each byte in the range
---     specified by @offset@ and @size@ and for each push constant range
---     that overlaps that byte, @stageFlags@ /must/ include all stages in
---     that push constant range’s
---     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@
---
--- -   #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple
---     of @4@
---
--- -   #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of
---     @4@
---
--- -   #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
---
--- -   #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or
---     equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
---     minus @offset@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a
---     valid 'Vulkan.Core10.Handles.PipelineLayout' handle
---
--- -   #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/
---     be a valid combination of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
---
--- -   #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@
---     /must/ not be @0@
---
--- -   #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a
---     valid pointer to an array of @size@ bytes
---
--- -   #VUID-vkCmdPushConstants-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-vkCmdPushConstants-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdPushConstants-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater
---     than @0@
---
--- -   #VUID-vkCmdPushConstants-commonparent# Both of @commandBuffer@, and
---     @layout@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Handles.PipelineLayout',
--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'
-cmdPushConstants :: forall io
-                  . (MonadIO io)
-                 => -- | @commandBuffer@ is the command buffer in which the push constant update
-                    -- will be recorded.
-                    CommandBuffer
-                 -> -- | @layout@ is the pipeline layout used to program the push constant
-                    -- updates.
-                    PipelineLayout
-                 -> -- | @stageFlags@ is a bitmask of
-                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying
-                    -- the shader stages that will use the push constants in the updated range.
-                    ShaderStageFlags
-                 -> -- | @offset@ is the start offset of the push constant range to update, in
-                    -- units of bytes.
-                    ("offset" ::: Word32)
-                 -> -- | @size@ is the size of the push constant range to update, in units of
-                    -- bytes.
-                    ("size" ::: Word32)
-                 -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new
-                    -- push constant values.
-                    ("values" ::: Ptr ())
-                 -> io ()
-cmdPushConstants commandBuffer
-                   layout
-                   stageFlags
-                   offset
-                   size
-                   values = liftIO $ do
-  let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdPushConstantsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing
-  let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr
-  traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants'
-                                           (commandBufferHandle (commandBuffer))
-                                           (layout)
-                                           (stageFlags)
-                                           (offset)
-                                           (size)
-                                           (values))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBeginRenderPass
-  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()
-
--- | vkCmdBeginRenderPass - Begin a new render pass
---
--- = Description
---
--- After beginning a render pass instance, the command buffer is ready to
--- record the commands for the first subpass of that render pass.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',
---     or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',
---     or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',
---     or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the
---     @stencilInitialLayout@ or @stencilFinalLayout@ member of the
---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'
---     structures or the @stencilLayout@ member of the
---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',
---     or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the
---     @initialLayout@ member of any of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when
---     creating the render pass specified in the @renderPass@ member of
---     @pRenderPassBegin@ is not
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each
---     such @initialLayout@ /must/ be equal to the current layout of the
---     corresponding attachment image subresource of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@
---
--- -   #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@
---     members of any element of the @pDependencies@ member of
---     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create
---     @renderPass@ /must/ be supported by the capabilities of the queue
---     family identified by the @queueFamilyIndex@ member of the
---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the
---     command pool which @commandBuffer@ was allocated from
---
--- -   #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@
---     members of any element of the @pDependencies@ member of
---     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create
---     @renderPass@ /must/ be supported by the capabilities of the queue
---     family identified by the @queueFamilyIndex@ member of the
---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the
---     command pool which @commandBuffer@ was allocated from
---
--- -   #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in
---     @framebuffer@ that is used by @renderPass@ and is bound to memory
---     locations that are also bound to another attachment used by
---     @renderPass@, and if at least one of those uses causes either
---     attachment to be written to, both attachments /must/ have had the
---     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'
---     set
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-07000# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value including either the
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
---     or
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
---     and either the
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
---     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'
---     usage bits
---
--- -   #VUID-vkCmdBeginRenderPass-initialLayout-07001# If any of the
---     @initialLayout@ or @finalLayout@ member of the
---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
---     structures specified when creating the render pass specified in the
---     @renderPass@ member of @pRenderPassBegin@ is
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
---     then the corresponding attachment image view of the framebuffer
---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
---     have been created with a @usage@ value the
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
---     usage bit
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#
---     @pRenderPassBegin@ /must/ be a valid pointer to a valid
---     'RenderPassBeginInfo' structure
---
--- -   #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be
---     a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value
---
--- -   #VUID-vkCmdBeginRenderPass-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-vkCmdBeginRenderPass-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be
---     called outside of a render pass instance
---
--- -   #VUID-vkCmdBeginRenderPass-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a
---     primary 'Vulkan.Core10.Handles.CommandBuffer'
---
--- == 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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',
--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
-cmdBeginRenderPass :: forall a io
-                    . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)
-                   => -- | @commandBuffer@ is the command buffer in which to record the command.
-                      CommandBuffer
-                   -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure
-                      -- specifying the render pass to begin an instance of, and the framebuffer
-                      -- the instance uses.
-                      (RenderPassBeginInfo a)
-                   -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
-                      -- value specifying how the commands in the first subpass will be provided.
-                      SubpassContents
-                   -> io ()
-cmdBeginRenderPass commandBuffer
-                     renderPassBegin
-                     contents = liftIO . evalContT $ do
-  let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing
-  let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr
-  pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)
-  lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass'
-                                                    (commandBufferHandle (commandBuffer))
-                                                    (forgetExtensions pRenderPassBegin)
-                                                    (contents))
-  pure $ ()
-
--- | This function will call the supplied action between calls to
--- 'cmdBeginRenderPass' and 'cmdEndRenderPass'
---
--- Note that 'cmdEndRenderPass' is *not* called if an exception is thrown
--- by the inner action.
-cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r
-cmdUseRenderPass commandBuffer pRenderPassBegin contents a =
-  (cmdBeginRenderPass commandBuffer
-                        pRenderPassBegin
-                        contents) *> a <* (cmdEndRenderPass commandBuffer)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdNextSubpass
-  :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()
-
--- | vkCmdNextSubpass - Transition to the next subpass of a render pass
---
--- = Description
---
--- The subpass index for a render pass begins at zero when
--- 'cmdBeginRenderPass' is recorded, and increments each time
--- 'cmdNextSubpass' is recorded.
---
--- Moving to the next subpass automatically performs any multisample
--- resolve operations in the subpass being ended. End-of-subpass
--- multisample resolves are treated as color attachment writes for the
--- purposes of synchronization. This applies to resolve operations for both
--- color and depth\/stencil attachments. That is, they are considered to
--- execute in the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
--- pipeline stage and their writes are synchronized with
--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.
--- Synchronization between rendering within a subpass and any resolve
--- operations at the end of the subpass occurs automatically, without need
--- for explicit dependencies or pipeline barriers. However, if the resolve
--- attachment is also used in a different subpass, an explicit dependency
--- is needed.
---
--- After transitioning to the next subpass, the application /can/ record
--- the commands for that subpass.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/
---     be less than the number of subpasses in the render pass minus one
---
--- -   #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be
---     recorded when transform feedback is active
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a
---     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value
---
--- -   #VUID-vkCmdNextSubpass-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-vkCmdNextSubpass-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdNextSubpass-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a
---     primary 'Vulkan.Core10.Handles.CommandBuffer'
---
--- == 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                                                                                                                                 |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
-cmdNextSubpass :: forall io
-                . (MonadIO io)
-               => -- | @commandBuffer@ is the command buffer in which to record the command.
-                  CommandBuffer
-               -> -- | @contents@ specifies how the commands in the next subpass will be
-                  -- provided, in the same fashion as the corresponding parameter of
-                  -- 'cmdBeginRenderPass'.
-                  SubpassContents
-               -> io ()
-cmdNextSubpass commandBuffer contents = liftIO $ do
-  let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdNextSubpassPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing
-  let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr
-  traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass'
-                                         (commandBufferHandle (commandBuffer))
-                                         (contents))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdEndRenderPass
-  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()
-
--- | vkCmdEndRenderPass - End the current render pass
---
--- = Description
---
--- Ending a render pass instance performs any multisample resolve
--- operations on the final subpass.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdEndRenderPass-None-00910# The current subpass index
---     /must/ be equal to the number of subpasses in the render pass minus
---     one
---
--- -   #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be
---     recorded when transform feedback is active
---
--- -   #VUID-vkCmdEndRenderPass-None-06170# The current render pass
---     instance /must/ not have been begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---
--- -   #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called
---     within a subpass of the render pass, the corresponding
---     'cmdEndQuery'* /must/ have been called subsequently within the same
---     subpass
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdEndRenderPass-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-vkCmdEndRenderPass-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdEndRenderPass-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a
---     primary 'Vulkan.Core10.Handles.CommandBuffer'
---
--- == 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                                                                                                                                 |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdEndRenderPass :: forall io
-                  . (MonadIO io)
-                 => -- | @commandBuffer@ is the command buffer in which to end the current render
-                    -- pass instance.
-                    CommandBuffer
-                 -> io ()
-cmdEndRenderPass commandBuffer = liftIO $ do
-  let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdEndRenderPassPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing
-  let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr
-  traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass'
-                                           (commandBufferHandle (commandBuffer)))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdExecuteCommands
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()
-
--- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary
--- command buffer
---
--- = Description
---
--- If any element of @pCommandBuffers@ was not recorded with the
--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
--- flag, and it was recorded into any other primary command buffer which is
--- currently in the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,
--- that primary command buffer becomes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of
---     @pCommandBuffers@ /must/ have been allocated with a @level@ of
---     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of
---     @pCommandBuffers@ /must/ be in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of
---     @pCommandBuffers@ was not recorded with the
---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
---     flag, it /must/ not be in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of
---     @pCommandBuffers@ was not recorded with the
---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
---     flag, it /must/ not have already been recorded to @commandBuffer@
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of
---     @pCommandBuffers@ was not recorded with the
---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
---     flag, it /must/ not appear more than once in @pCommandBuffers@
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of
---     @pCommandBuffers@ /must/ have been allocated from a
---     'Vulkan.Core10.Handles.CommandPool' that was created for the same
---     queue family as the 'Vulkan.Core10.Handles.CommandPool' from which
---     @commandBuffer@ was allocated
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If
---     'cmdExecuteCommands' is being called within a render pass instance,
---     each element of @pCommandBuffers@ /must/ have been recorded with the
---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If
---     'cmdExecuteCommands' is being called within a render pass instance,
---     and any element of @pCommandBuffers@ was recorded with
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@
---     not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that
---     'Vulkan.Core10.Handles.Framebuffer' /must/ match the
---     'Vulkan.Core10.Handles.Framebuffer' used in the current render pass
---     instance
---
--- -   #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'
---     is being called within a render pass instance begun with
---     'cmdBeginRenderPass', its @contents@ parameter /must/ have been set
---     to
---     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@
---     /must/ have been recorded with
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@
---     set to the index of the subpass which the given command buffer will
---     be executed in
---
--- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'
---     is being called within a render pass instance begun with
---     'cmdBeginRenderPass', the render passes specified in the
---     @pBeginInfo->pInheritanceInfo->renderPass@ members of the
---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to
---     begin recording each element of @pCommandBuffers@ /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>
---     with the current render pass
---
--- -   #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is
---     being called within a render pass instance that included
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of
---     @pCommandBuffers@ /must/ have been recorded with
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'
---     in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'
---
--- -   #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is
---     being called within a render pass instance that included
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of
---     @pCommandBuffers@ /must/ have been recorded with
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@
---     identical to
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
---
--- -   #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is
---     being called within a render pass instance that included
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of
---     @pCommandBuffers@ /must/ have been recorded with
---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@
---     identical to 'RenderPassBeginInfo'::@renderArea@
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If
---     'cmdExecuteCommands' is not being called within a render pass
---     instance, each element of @pCommandBuffers@ /must/ not have been
---     recorded with the
---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>
---     feature is not enabled, @commandBuffer@ /must/ not have any queries
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@
---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,
---     then each element of @pCommandBuffers@ /must/ have been recorded
---     with
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@
---     set to 'Vulkan.Core10.FundamentalTypes.TRUE'
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@
---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,
---     then each element of @pCommandBuffers@ /must/ have been recorded
---     with
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@
---     having all bits set that are set for the query
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@
---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'
---     query
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,
---     then each element of @pCommandBuffers@ /must/ have been recorded
---     with
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@
---     having all bits set that are set in the
---     'Vulkan.Core10.Handles.QueryPool' the query uses
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of
---     @pCommandBuffers@ /must/ not begin any query types that are
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
---     in @commandBuffer@
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-07594# @commandBuffer@
---     /must/ not have any queries other than
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@
---     is a protected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, each element of @pCommandBuffers@ /must/ be a
---     protected command buffer
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@
---     is an unprotected command buffer and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, each element of @pCommandBuffers@ /must/ be an
---     unprotected command buffer
---
--- -   #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be
---     recorded when transform feedback is active
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-06533# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     and any recorded command in @commandBuffer@ in the current subpass
---     will write to an image subresource as an attachment, commands
---     recorded in elements of @pCommandBuffers@ /must/ not read from the
---     memory backing that image subresource in any other way
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-06534# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     and any recorded command in @commandBuffer@ in the current subpass
---     will read from an image subresource used as an attachment in any way
---     other than as an attachment, commands recorded in elements of
---     @pCommandBuffers@ /must/ not write to that image subresource as an
---     attachment
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     and any recorded command in a given element of @pCommandBuffers@
---     will write to an image subresource as an attachment, commands
---     recorded in elements of @pCommandBuffers@ at a higher index /must/
---     not read from the memory backing that image subresource in any other
---     way
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     and any recorded command in a given element of @pCommandBuffers@
---     will read from an image subresource used as an attachment in any way
---     other than as an attachment, commands recorded in elements of
---     @pCommandBuffers@ at a higher index /must/ not write to that image
---     subresource as an attachment
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If
---     @pCommandBuffers@ contains any
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,
---     there /must/ be no action or synchronization commands between that
---     render pass instance and any render pass instance that resumes it
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If
---     @pCommandBuffers@ contains any
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,
---     there /must/ be no render pass instances between that render pass
---     instance and any render pass instance that resumes it
---
--- -   #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>
---     limit is not supported, and any element of @pCommandBuffers@
---     contains any
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,
---     where a graphics pipeline has been bound, any pipelines bound in the
---     render pass instance that resumes it, or any subsequent render pass
---     instances that resume from that one and so on, /must/ use the same
---     sample locations
---
--- -   #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     its
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@
---     parameter /must/ have included
---     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'
---
--- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'
---     is being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the render passes specified in the
---     @pBeginInfo->pInheritanceInfo->renderPass@ members of the
---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to
---     begin recording each element of @pCommandBuffers@ /must/ be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the @flags@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     excluding
---     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'
---
--- -   #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the @colorAttachmentCount@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---
--- -   #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'
---     is being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     if the @imageView@ member of an element of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding
---     element of the @pColorAttachmentFormats@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the format used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-imageView-07606# If 'cmdExecuteCommands'
---     is being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     if the @imageView@ member of an element of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding
---     element of the @pColorAttachmentFormats@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
---
--- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     if the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
---     @depthAttachmentFormat@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the format used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     if the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
---     @stencilAttachmentFormat@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the format used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06774# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
---     @depthAttachmentFormat@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
---
--- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If
---     'cmdExecuteCommands' is being called within a render pass instance
---     begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
---     @stencilAttachmentFormat@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
---
--- -   #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'
---     is being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the @viewMask@ member of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---
--- -   #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
---     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure, if the @imageView@ member of an element of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding
---     element of the @pColorAttachmentSamples@ member of the
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the sample count used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
---     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure, if the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
---     @depthStencilAttachmentSamples@ member of the
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the sample count used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
---     a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure, if the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
---     @depthStencilAttachmentSamples@ member of the
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure included in the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
---     used to begin recording each element of @pCommandBuffers@ /must/ be
---     equal to the sample count used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
---     include a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure, if the @imageView@ member of an element of the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
---     /must/ be equal to the sample count used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
---     include a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure, if the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
---     /must/ be equal to the sample count used to create that image view
---
--- -   #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is
---     being called within a render pass instance begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and the @pNext@ chain of
---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
---     include a
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     structure, if the
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
---     parameter to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
---     /must/ be equal to the sample count used to create that image view
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#
---     @pCommandBuffers@ /must/ be a valid pointer to an array of
---     @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'
---     handles
---
--- -   #VUID-vkCmdExecuteCommands-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-vkCmdExecuteCommands-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
---
--- -   #VUID-vkCmdExecuteCommands-videocoding# This command /must/ only be
---     called outside of a video coding scope
---
--- -   #VUID-vkCmdExecuteCommands-bufferlevel# @commandBuffer@ /must/ be a
---     primary 'Vulkan.Core10.Handles.CommandBuffer'
---
--- -   #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#
---     @commandBufferCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,
---     and the elements of @pCommandBuffers@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Indirection                                                                                                                            |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdExecuteCommands :: forall io
-                    . (MonadIO io)
-                   => -- | @commandBuffer@ is a handle to a primary command buffer that the
-                      -- secondary command buffers are executed in.
-                      CommandBuffer
-                   -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@
-                      -- secondary command buffer handles, which are recorded to execute in the
-                      -- primary command buffer in the order they are listed in the array.
-                      ("commandBuffers" ::: Vector CommandBuffer)
-                   -> io ()
-cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do
-  let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing
-  let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr
-  pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)
-  lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands'
-                                                    (commandBufferHandle (commandBuffer))
-                                                    ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32))
-                                                    (pPCommandBuffers))
-  pure $ ()
-
-
--- | VkClearRect - Structure specifying a clear rectangle
---
--- = Description
---
--- The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting
--- from the base layer of the attachment image view are cleared.
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'
-data ClearRect = ClearRect
-  { -- | @rect@ is the two-dimensional region to be cleared.
-    rect :: Rect2D
-  , -- | @baseArrayLayer@ is the first layer to be cleared.
-    baseArrayLayer :: Word32
-  , -- | @layerCount@ is the number of layers to clear.
-    layerCount :: Word32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ClearRect)
-#endif
-deriving instance Show ClearRect
-
-instance ToCStruct ClearRect where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ClearRect{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)
-    f
-  cStructSize = 24
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct ClearRect where
-  peekCStruct p = do
-    rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))
-    baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pure $ ClearRect
-             rect baseArrayLayer layerCount
-
-instance Storable ClearRect where
-  sizeOf ~_ = 24
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ClearRect where
-  zero = ClearRect
-           zero
-           zero
-           zero
-
-
--- | VkImageSubresourceLayers - Structure specifying an image subresource
--- layers
---
--- == Valid Usage
---
--- -   #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@
---     contains
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it
---     /must/ not contain either of
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---
--- -   #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/
---     not contain
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'
---
--- -   #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/
---     not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index
---     /i/
---
--- -   #VUID-VkImageSubresourceLayers-layerCount-01700# @layerCount@ /must/
---     be greater than 0
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values
---
--- -   #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#
---     @aspectMask@ /must/ not be @0@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'BufferImageCopy',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',
--- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV',
--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',
--- 'ImageCopy',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',
--- 'ImageResolve',
--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',
--- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV'
-data ImageSubresourceLayers = ImageSubresourceLayers
-  { -- | @aspectMask@ is a combination of
-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting
-    -- the color, depth and\/or stencil aspects to be copied.
-    aspectMask :: ImageAspectFlags
-  , -- | @mipLevel@ is the mipmap level to copy
-    mipLevel :: Word32
-  , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of
-    -- layers to copy.
-    baseArrayLayer :: Word32
-  , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"
-    layerCount :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ImageSubresourceLayers)
-#endif
-deriving instance Show ImageSubresourceLayers
-
-instance ToCStruct ImageSubresourceLayers where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ImageSubresourceLayers{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)
-    f
-  cStructSize = 16
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct ImageSubresourceLayers where
-  peekCStruct p = do
-    aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))
-    mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
-    layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
-    pure $ ImageSubresourceLayers
-             aspectMask mipLevel baseArrayLayer layerCount
-
-instance Storable ImageSubresourceLayers where
-  sizeOf ~_ = 16
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ImageSubresourceLayers where
-  zero = ImageSubresourceLayers
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkBufferCopy - Structure specifying a buffer copy operation
---
--- == Valid Usage
---
--- -   #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'
-data BufferCopy = BufferCopy
-  { -- | @srcOffset@ is the starting offset in bytes from the start of
-    -- @srcBuffer@.
-    srcOffset :: DeviceSize
-  , -- | @dstOffset@ is the starting offset in bytes from the start of
-    -- @dstBuffer@.
-    dstOffset :: DeviceSize
-  , -- | @size@ is the number of bytes to copy.
-    size :: DeviceSize
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (BufferCopy)
-#endif
-deriving instance Show BufferCopy
-
-instance ToCStruct BufferCopy where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BufferCopy{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)
-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)
-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
-    f
-
-instance FromCStruct BufferCopy where
-  peekCStruct p = do
-    srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))
-    dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))
-    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
-    pure $ BufferCopy
-             srcOffset dstOffset size
-
-instance Storable BufferCopy where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BufferCopy where
-  zero = BufferCopy
-           zero
-           zero
-           zero
-
-
--- | VkImageCopy - Structure specifying an image copy operation
---
--- == Valid Usage
---
--- -   #VUID-VkImageCopy-apiVersion-07940# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
---     extension is not enabled and
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@
---     and @dstSubresource@ /must/ match
---
--- -   #VUID-VkImageCopy-apiVersion-07941# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled and
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@
---     and @dstSubresource@ /must/ match
---
--- -   #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0
---
--- -   #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0
---
--- -   #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/
---     be a valid 'ImageSubresourceLayers' structure
---
--- -   #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/
---     be a valid 'ImageSubresourceLayers' structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',
--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'
-data ImageCopy = ImageCopy
-  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'
-    -- structures specifying the image subresources of the images used for the
-    -- source and destination image data, respectively.
-    srcSubresource :: ImageSubresourceLayers
-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets
-    -- in texels of the sub-regions of the source and destination image data.
-    srcOffset :: Offset3D
-  , -- No documentation found for Nested "VkImageCopy" "dstSubresource"
-    dstSubresource :: ImageSubresourceLayers
-  , -- No documentation found for Nested "VkImageCopy" "dstOffset"
-    dstOffset :: Offset3D
-  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@
-    -- and @depth@.
-    extent :: Extent3D
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ImageCopy)
-#endif
-deriving instance Show ImageCopy
-
-instance ToCStruct ImageCopy where
-  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ImageCopy{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)
-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)
-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)
-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)
-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)
-    f
-  cStructSize = 68
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)
-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)
-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)
-    f
-
-instance FromCStruct ImageCopy where
-  peekCStruct p = do
-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))
-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))
-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))
-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))
-    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))
-    pure $ ImageCopy
-             srcSubresource srcOffset dstSubresource dstOffset extent
-
-instance Storable ImageCopy where
-  sizeOf ~_ = 68
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ImageCopy where
-  zero = ImageCopy
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkImageBlit - Structure specifying an image blit operation
---
--- = Description
---
--- For each element of the @pRegions@ array, a blit operation is performed
--- for the specified source and destination regions.
---
--- == Valid Usage
---
--- -   #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of
---     @srcSubresource@ and @dstSubresource@ /must/ match
---
--- -   #VUID-VkImageBlit-layerCount-00239# The @layerCount@ member of
---     @srcSubresource@ and @dstSubresource@ /must/ match
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/
---     be a valid 'ImageSubresourceLayers' structure
---
--- -   #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/
---     be a valid 'ImageSubresourceLayers' structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',
--- 'cmdBlitImage'
-data ImageBlit = ImageBlit
-  { -- | @srcSubresource@ is the subresource to blit from.
-    srcSubresource :: ImageSubresourceLayers
-  , -- | @srcOffsets@ is a pointer to an array of two
-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the
-    -- bounds of the source region within @srcSubresource@.
-    srcOffsets :: (Offset3D, Offset3D)
-  , -- | @dstSubresource@ is the subresource to blit into.
-    dstSubresource :: ImageSubresourceLayers
-  , -- | @dstOffsets@ is a pointer to an array of two
-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the
-    -- bounds of the destination region within @dstSubresource@.
-    dstOffsets :: (Offset3D, Offset3D)
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ImageBlit)
-#endif
-deriving instance Show ImageBlit
-
-instance ToCStruct ImageBlit where
-  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ImageBlit{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)
-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))
-    case (srcOffsets) of
-      (e0, e1) -> do
-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)
-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
-    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)
-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))
-    case (dstOffsets) of
-      (e0, e1) -> do
-        poke (pDstOffsets' :: Ptr Offset3D) (e0)
-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
-    f
-  cStructSize = 80
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)
-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))
-    case ((zero, zero)) of
-      (e0, e1) -> do
-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)
-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
-    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)
-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))
-    case ((zero, zero)) of
-      (e0, e1) -> do
-        poke (pDstOffsets' :: Ptr Offset3D) (e0)
-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
-    f
-
-instance FromCStruct ImageBlit where
-  peekCStruct p = do
-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))
-    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))
-    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))
-    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))
-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))
-    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))
-    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))
-    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))
-    pure $ ImageBlit
-             srcSubresource
-             ((srcOffsets0, srcOffsets1))
-             dstSubresource
-             ((dstOffsets0, dstOffsets1))
-
-instance Storable ImageBlit where
-  sizeOf ~_ = 80
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ImageBlit where
-  zero = ImageBlit
-           zero
-           (zero, zero)
-           zero
-           (zero, zero)
-
-
--- | VkBufferImageCopy - Structure specifying a buffer image copy operation
---
--- == Valid Usage
---
--- -   #VUID-VkBufferImageCopy-bufferRowLength-00195# @bufferRowLength@
---     /must/ be @0@, or greater than or equal to the @width@ member of
---     @imageExtent@
---
--- -   #VUID-VkBufferImageCopy-bufferImageHeight-00196# @bufferImageHeight@
---     /must/ be @0@, or greater than or equal to the @height@ member of
---     @imageExtent@
---
--- -   #VUID-VkBufferImageCopy-aspectMask-00212# The @aspectMask@ member of
---     @imageSubresource@ /must/ only have a single bit set
---
--- -   #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@
---     /must/ not be 0
---
--- -   #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@
---     /must/ not be 0
---
--- -   #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@
---     /must/ not be 0
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkBufferImageCopy-imageSubresource-parameter#
---     @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'
---     structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',
--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',
--- 'cmdCopyImageToBuffer'
-data BufferImageCopy = BufferImageCopy
-  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer
-    -- object where the image data is copied from or to.
-    bufferOffset :: DeviceSize
-  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion
-    -- of a larger two- or three-dimensional image in buffer memory, and
-    -- control the addressing calculations. If either of these values is zero,
-    -- that aspect of the buffer memory is considered to be tightly packed
-    -- according to the @imageExtent@.
-    bufferRowLength :: Word32
-  , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"
-    bufferImageHeight :: Word32
-  , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the
-    -- specific image subresources of the image used for the source or
-    -- destination image data.
-    imageSubresource :: ImageSubresourceLayers
-  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the
-    -- sub-region of the source or destination image data.
-    imageOffset :: Offset3D
-  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,
-    -- @height@ and @depth@.
-    imageExtent :: Extent3D
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (BufferImageCopy)
-#endif
-deriving instance Show BufferImageCopy
-
-instance ToCStruct BufferImageCopy where
-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BufferImageCopy{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)
-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)
-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)
-    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)
-    f
-  cStructSize = 56
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)
-    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)
-    f
-
-instance FromCStruct BufferImageCopy where
-  peekCStruct p = do
-    bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))
-    bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
-    bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
-    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))
-    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))
-    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))
-    pure $ BufferImageCopy
-             bufferOffset
-             bufferRowLength
-             bufferImageHeight
-             imageSubresource
-             imageOffset
-             imageExtent
-
-instance Storable BufferImageCopy where
-  sizeOf ~_ = 56
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BufferImageCopy where
-  zero = BufferImageCopy
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkImageResolve - Structure specifying an image resolve operation
---
--- == Valid Usage
---
--- -   #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of
---     @srcSubresource@ and @dstSubresource@ /must/ only contain
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
---
--- -   #VUID-VkImageResolve-layerCount-00267# The @layerCount@ member of
---     @srcSubresource@ and @dstSubresource@ /must/ match
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@
---     /must/ be a valid 'ImageSubresourceLayers' structure
---
--- -   #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@
---     /must/ be a valid 'ImageSubresourceLayers' structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',
--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'
-data ImageResolve = ImageResolve
-  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'
-    -- structures specifying the image subresources of the images used for the
-    -- source and destination image data, respectively. Resolve of
-    -- depth\/stencil images is not supported.
-    srcSubresource :: ImageSubresourceLayers
-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets
-    -- in texels of the sub-regions of the source and destination image data.
-    srcOffset :: Offset3D
-  , -- No documentation found for Nested "VkImageResolve" "dstSubresource"
-    dstSubresource :: ImageSubresourceLayers
-  , -- No documentation found for Nested "VkImageResolve" "dstOffset"
-    dstOffset :: Offset3D
-  , -- | @extent@ is the size in texels of the source image to resolve in
-    -- @width@, @height@ and @depth@.
-    extent :: Extent3D
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ImageResolve)
-#endif
-deriving instance Show ImageResolve
-
-instance ToCStruct ImageResolve where
-  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ImageResolve{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)
-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)
-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)
-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)
-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)
-    f
-  cStructSize = 68
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)
-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)
-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)
-    f
-
-instance FromCStruct ImageResolve where
-  peekCStruct p = do
-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))
-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))
-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))
-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))
-    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))
-    pure $ ImageResolve
-             srcSubresource srcOffset dstSubresource dstOffset extent
-
-instance Storable ImageResolve where
-  sizeOf ~_ = 68
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ImageResolve where
-  zero = ImageResolve
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkRenderPassBeginInfo - Structure specifying render pass begin
--- information
---
--- = Description
---
--- @renderArea@ is the render area that is affected by the render pass
--- instance. The effects of attachment load, store and multisample resolve
--- operations are restricted to the pixels whose x and y coordinates fall
--- within the render area on all attachments. The render area extends to
--- all layers of @framebuffer@. The application /must/ ensure (using
--- scissor if necessary) that all rendering is contained within the render
--- area. The render area, after any transform specified by
--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
--- is applied, /must/ be contained within the framebuffer dimensions.
---
--- If
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>
--- is enabled, then @renderArea@ /must/ equal the framebuffer
--- pre-transformed dimensions. After @renderArea@ has been transformed by
--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,
--- the resulting render area /must/ be equal to the framebuffer dimensions.
---
--- If multiview is enabled in @renderPass@, and
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>
--- feature is enabled, and there is an instance of
--- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
--- included in the @pNext@ chain with @perViewRenderAreaCount@ not equal to
--- @0@, then the elements of
--- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'::@pPerViewRenderAreas@
--- override @renderArea@ and define a render area for each view. In this
--- case, @renderArea@ /must/ be set to an area at least as large as the
--- union of all the per-view render areas.
---
--- If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>
--- feature is enabled, then @renderArea@ /must/ equal the framebuffer
--- dimensions.
---
--- When multiview is enabled, the resolve operation at the end of a subpass
--- applies to all views in the view mask.
---
--- Note
---
--- There /may/ be a performance cost for using a render area smaller than
--- the framebuffer, unless it matches the render area granularity for the
--- render pass.
---
--- == Valid Usage
---
--- -   #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@
---     /must/ be greater than the largest attachment index in @renderPass@
---     specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a
---     depth\/stencil format) of
---     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'
---
--- -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If
---     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid
---     pointer to an array of @clearValueCount@ 'ClearValue' unions
---
--- -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>
---     with the @renderPass@ member of the
---     'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when
---     creating @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does
---     not contain
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
---     or its @deviceRenderAreaCount@ member is equal to 0,
---     @renderArea.offset.x@ /must/ be greater than or equal to 0
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does
---     not contain
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
---     or its @deviceRenderAreaCount@ member is equal to 0,
---     @renderArea.offset.y@ /must/ be greater than or equal to 0
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does
---     not contain
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
---     or its @deviceRenderAreaCount@ member is equal to 0,
---     @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less
---     than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@
---     the @framebuffer@ was created with
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does
---     not contain
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
---     or its @deviceRenderAreaCount@ member is equal to 0,
---     @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less
---     than or equal to
---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the
---     @framebuffer@ was created with
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain
---     contains
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
---     @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@
---     /must/ be less than or equal to
---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the
---     @framebuffer@ was created with
---
--- -   #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain
---     contains
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
---     @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@
---     /must/ be less than or equal to
---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the
---     @framebuffer@ was created with
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that did not include
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     and the @pNext@ chain includes a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure, its @attachmentCount@ /must/ be zero
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     the @attachmentCount@ of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be equal to the value
---     of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ have been created on
---     the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and
---     @renderPass@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a value
---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the
---     @flags@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>
---     equal to the @usage@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@
---     member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' with a height equal to the
---     @height@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a value
---     of
---     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@
---     equal to the @layerCount@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a value
---     of
---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@
---     equal to the @viewFormatCount@ member of the corresponding element
---     of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a set of
---     elements in
---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@
---     equal to the set of elements in the @pViewFormats@ member of the
---     corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
---     used to create @framebuffer@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a value
---     of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to
---     the corresponding value of
---     'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@
---
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03217# If @framebuffer@ was
---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
---     value that included
---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
---     each element of the @pAttachments@ member of a
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
---     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a value
---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the
---     corresponding value of
---     'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in
---     @renderPass@
+-- Commands that do not interact with the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-binding given pipeline>
+-- type /must/ not be affected by the pipeline state.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00777# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support compute operations
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00778# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00779# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     @pipeline@ /must/ be a compute pipeline
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-00780# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
+--     @pipeline@ /must/ be a graphics pipeline
+--
+-- -   #VUID-vkCmdBindPipeline-pipeline-00781# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>
+--     feature is not supported, @pipeline@ is a graphics pipeline, the
+--     current subpass
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments uses no attachments>,
+--     and this is not the first call to this function with a graphics
+--     pipeline after transitioning to the current subpass, then the sample
+--     count specified by this pipeline /must/ match that set in the
+--     previous pipeline
+--
+-- -   #VUID-vkCmdBindPipeline-variableSampleLocations-01525# If
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @pipeline@ is a
+--     graphics pipeline created with a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
+--     structure having its @sampleLocationsEnable@ member set to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' but without
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     enabled then the current render pass instance /must/ have been begun
+--     by specifying a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'
+--     structure whose @pPostSubpassSampleLocations@ member contains an
+--     element with a @subpassIndex@ matching the current subpass index and
+--     the @sampleLocationsInfo@ member of that element /must/ match the
+--     @sampleLocationsInfo@ specified in
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
+--     when the pipeline was created
+--
+-- -   #VUID-vkCmdBindPipeline-None-02323# This command /must/ not be
+--     recorded when transform feedback is active
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02391# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support compute operations
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
+--     @pipeline@ /must/ be a ray tracing pipeline
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-06721# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>
+--     feature is enabled, and @commandBuffer@ is a protected command
+--     buffer, @pipeline@ /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>
+--     feature is enabled, and @commandBuffer@ is not a protected command
+--     buffer, @pipeline@ /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'
+--
+-- -   #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have
+--     been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
+--     set
+--
+-- -   #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a
+--     secondary command buffer with
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
+--     enabled and @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
+--     then the @pipeline@ /must/ have been created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled
+--
+-- -   #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a
+--     secondary command buffer with
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
+--     enabled and @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     and @pipeline@ was created with
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'
+--     structure and its @discardRectangleCount@ member is not @0@, or the
+--     pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     enabled, then the pipeline /must/ have been created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'
+--     enabled
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>
+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s
+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@
+--     /must/ be the same as that of any other pipelines previously bound
+--     to this bind point within the current render pass instance,
+--     including any pipeline already bound when beginning the render pass
+--     instance
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04949# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support compute operations
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04950# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',
+--     @pipeline@ /must/ be a subpass shading pipeline
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-06653# If
+--     @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
+--     @pipeline@ /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-vkCmdBindPipeline-pipeline-parameter# @pipeline@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-vkCmdBindPipeline-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-vkCmdBindPipeline-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdBindPipeline-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindPipeline-commonparent# Both of @commandBuffer@, and
+--     @pipeline@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'
+cmdBindPipeline :: forall io
+                 . (MonadIO io)
+                => -- | @commandBuffer@ is the command buffer that the pipeline will be bound
+                   -- to.
+                   CommandBuffer
+                -> -- | @pipelineBindPoint@ is a
+                   -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+                   -- specifying to which bind point the pipeline is bound. Binding one does
+                   -- not disturb the others.
+                   PipelineBindPoint
+                -> -- | @pipeline@ is the pipeline to be bound.
+                   Pipeline
+                -> io ()
+cmdBindPipeline commandBuffer pipelineBindPoint pipeline = liftIO $ do
+  let vkCmdBindPipelinePtr = pVkCmdBindPipeline (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdBindPipelinePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing
+  let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr
+  traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline'
+                                          (commandBufferHandle (commandBuffer))
+                                          (pipelineBindPoint)
+                                          (pipeline))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetViewport
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()
+
+-- | vkCmdSetViewport - Set the viewport dynamically for a command buffer
+--
+-- = Description
+--
+-- This command sets the viewport transformation parameters state for
+-- subsequent drawing commands when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pViewports@
+-- values used to create the currently active pipeline.
+--
+-- The viewport parameters taken from element i of @pViewports@ replace the
+-- current state for the viewport index @firstViewport@ + i, for i in [0,
+-- @viewportCount@).
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetViewport-firstViewport-01223# The sum of
+--     @firstViewport@ and @viewportCount@ /must/ be between @1@ and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,
+--     inclusive
+--
+-- -   #VUID-vkCmdSetViewport-firstViewport-01224# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--     feature is not enabled, @firstViewport@ /must/ be @0@
+--
+-- -   #VUID-vkCmdSetViewport-viewportCount-01225# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--     feature is not enabled, @viewportCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/
+--     not have
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
+--     enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetViewport-pViewports-parameter# @pViewports@ /must/ be
+--     a valid pointer to an array of @viewportCount@ valid
+--     'Vulkan.Core10.Pipeline.Viewport' structures
+--
+-- -   #VUID-vkCmdSetViewport-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-vkCmdSetViewport-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetViewport-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdSetViewport-viewportCount-arraylength# @viewportCount@
+--     /must/ be greater than @0@
+--
+-- == 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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'
+cmdSetViewport :: forall io
+                . (MonadIO io)
+               => -- | @commandBuffer@ is the command buffer into which the command will be
+                  -- recorded.
+                  CommandBuffer
+               -> -- | @firstViewport@ is the index of the first viewport whose parameters are
+                  -- updated by the command.
+                  ("firstViewport" ::: Word32)
+               -> -- | @pViewports@ is a pointer to an array of
+                  -- 'Vulkan.Core10.Pipeline.Viewport' structures specifying viewport
+                  -- parameters.
+                  ("viewports" ::: Vector Viewport)
+               -> io ()
+cmdSetViewport commandBuffer firstViewport viewports = liftIO . evalContT $ do
+  let vkCmdSetViewportPtr = pVkCmdSetViewport (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdSetViewportPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewport is null" Nothing Nothing
+  let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr
+  pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)
+  lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport'
+                                                (commandBufferHandle (commandBuffer))
+                                                (firstViewport)
+                                                ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32))
+                                                (pPViewports))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetScissor
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()
+
+-- | vkCmdSetScissor - Set scissor rectangles dynamically for a command
+-- buffer
+--
+-- = Description
+--
+-- The scissor rectangles taken from element i of @pScissors@ replace the
+-- current state for the scissor index @firstScissor@ + i, for i in [0,
+-- @scissorCount@).
+--
+-- This command sets the scissor rectangles for subsequent drawing commands
+-- when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pScissors@
+-- values used to create the currently active pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetScissor-firstScissor-00592# The sum of @firstScissor@
+--     and @scissorCount@ /must/ be between @1@ and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,
+--     inclusive
+--
+-- -   #VUID-vkCmdSetScissor-firstScissor-00593# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--     feature is not enabled, @firstScissor@ /must/ be @0@
+--
+-- -   #VUID-vkCmdSetScissor-scissorCount-00594# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--     feature is not enabled, @scissorCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdSetScissor-x-00595# The @x@ and @y@ members of @offset@
+--     member of any element of @pScissors@ /must/ be greater than or equal
+--     to @0@
+--
+-- -   #VUID-vkCmdSetScissor-offset-00596# Evaluation of (@offset.x@ +
+--     @extent.width@) /must/ not cause a signed integer addition overflow
+--     for any element of @pScissors@
+--
+-- -   #VUID-vkCmdSetScissor-offset-00597# Evaluation of (@offset.y@ +
+--     @extent.height@) /must/ not cause a signed integer addition overflow
+--     for any element of @pScissors@
+--
+-- -   #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is
+--     recorded in a secondary command buffer with
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@
+--     enabled, then this function /must/ not be called
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetScissor-pScissors-parameter# @pScissors@ /must/ be a
+--     valid pointer to an array of @scissorCount@
+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
+--
+-- -   #VUID-vkCmdSetScissor-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-vkCmdSetScissor-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetScissor-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdSetScissor-scissorCount-arraylength# @scissorCount@
+--     /must/ be greater than @0@
+--
+-- == 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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.Rect2D'
+cmdSetScissor :: forall io
+               . (MonadIO io)
+              => -- | @commandBuffer@ is the command buffer into which the command will be
+                 -- recorded.
+                 CommandBuffer
+              -> -- | @firstScissor@ is the index of the first scissor whose state is updated
+                 -- by the command.
+                 ("firstScissor" ::: Word32)
+              -> -- | @pScissors@ is a pointer to an array of
+                 -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining scissor
+                 -- rectangles.
+                 ("scissors" ::: Vector Rect2D)
+              -> io ()
+cmdSetScissor commandBuffer firstScissor scissors = liftIO . evalContT $ do
+  let vkCmdSetScissorPtr = pVkCmdSetScissor (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdSetScissorPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissor is null" Nothing Nothing
+  let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr
+  pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)
+  lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor'
+                                               (commandBufferHandle (commandBuffer))
+                                               (firstScissor)
+                                               ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32))
+                                               (pPScissors))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetLineWidth
+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()
+
+-- | vkCmdSetLineWidth - Set line width dynamically for a command buffer
+--
+-- = Description
+--
+-- This command sets the line width for subsequent drawing commands when
+-- drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@lineWidth@
+-- value used to create the currently active pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetLineWidth-lineWidth-00788# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>
+--     feature is not enabled, @lineWidth@ /must/ be @1.0@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetLineWidth-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetLineWidth-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-vkCmdSetLineWidth-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetLineWidth-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdSetLineWidth :: forall io
+                 . (MonadIO io)
+                => -- | @commandBuffer@ is the command buffer into which the command will be
+                   -- recorded.
+                   CommandBuffer
+                -> -- | @lineWidth@ is the width of rasterized line segments.
+                   ("lineWidth" ::: Float)
+                -> io ()
+cmdSetLineWidth commandBuffer lineWidth = liftIO $ do
+  let vkCmdSetLineWidthPtr = pVkCmdSetLineWidth (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetLineWidthPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing
+  let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr
+  traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth'
+                                          (commandBufferHandle (commandBuffer))
+                                          (CFloat (lineWidth)))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetDepthBias
+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()
+
+-- | vkCmdSetDepthBias - Set depth bias factors and clamp dynamically for a
+-- command buffer
+--
+-- = Description
+--
+-- This command sets the depth bias parameters for subsequent drawing
+-- commands when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the corresponding
+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasConstantFactor@,
+-- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the
+-- currently active pipeline.
+--
+-- Calling this function is equivalent to calling
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+-- without a
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT'
+-- in the pNext chain of
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasInfoEXT'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>
+--     feature is not enabled, @depthBiasClamp@ /must/ be @0.0@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetDepthBias-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetDepthBias-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-vkCmdSetDepthBias-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetDepthBias-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdSetDepthBias :: forall io
+                 . (MonadIO io)
+                => -- | @commandBuffer@ is the command buffer into which the command will be
+                   -- recorded.
+                   CommandBuffer
+                -> -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant
+                   -- depth value added to each fragment.
+                   ("depthBiasConstantFactor" ::: Float)
+                -> -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.
+                   ("depthBiasClamp" ::: Float)
+                -> -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope
+                   -- in depth bias calculations.
+                   ("depthBiasSlopeFactor" ::: Float)
+                -> io ()
+cmdSetDepthBias commandBuffer
+                  depthBiasConstantFactor
+                  depthBiasClamp
+                  depthBiasSlopeFactor = liftIO $ do
+  let vkCmdSetDepthBiasPtr = pVkCmdSetDepthBias (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing
+  let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr
+  traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias'
+                                          (commandBufferHandle (commandBuffer))
+                                          (CFloat (depthBiasConstantFactor))
+                                          (CFloat (depthBiasClamp))
+                                          (CFloat (depthBiasSlopeFactor)))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetBlendConstants
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()
+
+-- | vkCmdSetBlendConstants - Set the values of blend constants
+--
+-- = Description
+--
+-- This command sets blend constants for subsequent drawing commands when
+-- when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@blendConstants@
+-- values used to create the currently active pipeline.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetBlendConstants-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetBlendConstants-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-vkCmdSetBlendConstants-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetBlendConstants-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdSetBlendConstants :: forall io
+                      . (MonadIO io)
+                     => -- | @commandBuffer@ is the command buffer into which the command will be
+                        -- recorded.
+                        CommandBuffer
+                     -> -- | @blendConstants@ is a pointer to an array of four values specifying the
+                        -- Rc, Gc, Bc, and Ac components of the blend constant color used in
+                        -- blending, depending on the
+                        -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.
+                        ("blendConstants" ::: (Float, Float, Float, Float))
+                     -> io ()
+cmdSetBlendConstants commandBuffer blendConstants = liftIO . evalContT $ do
+  let vkCmdSetBlendConstantsPtr = pVkCmdSetBlendConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdSetBlendConstantsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetBlendConstants is null" Nothing Nothing
+  let vkCmdSetBlendConstants' = mkVkCmdSetBlendConstants vkCmdSetBlendConstantsPtr
+  pBlendConstants <- ContT $ allocaBytes @(FixedArray 4 CFloat) 16
+  let pBlendConstants' = lowerArrayPtr pBlendConstants
+  lift $ case (blendConstants) of
+    (e0, e1, e2, e3) -> do
+      poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))
+      poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
+      poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
+      poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
+  lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (pBlendConstants))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetDepthBounds
+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()
+
+-- | vkCmdSetDepthBounds - Set depth bounds range dynamically for a command
+-- buffer
+--
+-- = Description
+--
+-- This command sets the depth bounds range for subsequent drawing commands
+-- when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@minDepthBounds@
+-- and
+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@maxDepthBounds@
+-- values used to create the currently active pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthBounds-minDepthBounds-00600# If the
+--     @VK_EXT_depth_range_unrestricted@ extension is not enabled
+--     @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive
+--
+-- -   #VUID-vkCmdSetDepthBounds-maxDepthBounds-00601# If the
+--     @VK_EXT_depth_range_unrestricted@ extension is not enabled
+--     @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetDepthBounds-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetDepthBounds-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-vkCmdSetDepthBounds-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetDepthBounds-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdSetDepthBounds :: forall io
+                   . (MonadIO io)
+                  => -- | @commandBuffer@ is the command buffer into which the command will be
+                     -- recorded.
+                     CommandBuffer
+                  -> -- | @minDepthBounds@ is the minimum depth bound.
+                     ("minDepthBounds" ::: Float)
+                  -> -- | @maxDepthBounds@ is the maximum depth bound.
+                     ("maxDepthBounds" ::: Float)
+                  -> io ()
+cmdSetDepthBounds commandBuffer minDepthBounds maxDepthBounds = liftIO $ do
+  let vkCmdSetDepthBoundsPtr = pVkCmdSetDepthBounds (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing
+  let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr
+  traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds'
+                                            (commandBufferHandle (commandBuffer))
+                                            (CFloat (minDepthBounds))
+                                            (CFloat (maxDepthBounds)))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetStencilCompareMask
+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()
+
+-- | vkCmdSetStencilCompareMask - Set stencil compare mask dynamically for a
+-- command buffer
+--
+-- = Description
+--
+-- This command sets the stencil compare mask for subsequent drawing
+-- commands when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+-- set in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.StencilOpState'::@compareMask@ value used to
+-- create the currently active pipeline, for both front and back faces.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetStencilCompareMask-faceMask-parameter# @faceMask@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values
+--
+-- -   #VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask#
+--     @faceMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdSetStencilCompareMask-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-vkCmdSetStencilCompareMask-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetStencilCompareMask-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'
+cmdSetStencilCompareMask :: forall io
+                          . (MonadIO io)
+                         => -- | @commandBuffer@ is the command buffer into which the command will be
+                            -- recorded.
+                            CommandBuffer
+                         -> -- | @faceMask@ is a bitmask of
+                            -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying
+                            -- the set of stencil state for which to update the compare mask.
+                            ("faceMask" ::: StencilFaceFlags)
+                         -> -- | @compareMask@ is the new value to use as the stencil compare mask.
+                            ("compareMask" ::: Word32)
+                         -> io ()
+cmdSetStencilCompareMask commandBuffer faceMask compareMask = liftIO $ do
+  let vkCmdSetStencilCompareMaskPtr = pVkCmdSetStencilCompareMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing
+  let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr
+  traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask'
+                                                   (commandBufferHandle (commandBuffer))
+                                                   (faceMask)
+                                                   (compareMask))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetStencilWriteMask
+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()
+
+-- | vkCmdSetStencilWriteMask - Set stencil write mask dynamically for a
+-- command buffer
+--
+-- = Description
+--
+-- This command sets the stencil write mask for subsequent drawing commands
+-- when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set
+-- in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the @writeMask@ value used to
+-- create the currently active pipeline, for both
+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@front@
+-- and 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@back@
+-- faces.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetStencilWriteMask-faceMask-parameter# @faceMask@ /must/
+--     be a valid combination of
+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values
+--
+-- -   #VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask# @faceMask@
+--     /must/ not be @0@
+--
+-- -   #VUID-vkCmdSetStencilWriteMask-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-vkCmdSetStencilWriteMask-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetStencilWriteMask-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'
+cmdSetStencilWriteMask :: forall io
+                        . (MonadIO io)
+                       => -- | @commandBuffer@ is the command buffer into which the command will be
+                          -- recorded.
+                          CommandBuffer
+                       -> -- | @faceMask@ is a bitmask of
+                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying
+                          -- the set of stencil state for which to update the write mask, as
+                          -- described above for 'cmdSetStencilCompareMask'.
+                          ("faceMask" ::: StencilFaceFlags)
+                       -> -- | @writeMask@ is the new value to use as the stencil write mask.
+                          ("writeMask" ::: Word32)
+                       -> io ()
+cmdSetStencilWriteMask commandBuffer faceMask writeMask = liftIO $ do
+  let vkCmdSetStencilWriteMaskPtr = pVkCmdSetStencilWriteMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing
+  let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr
+  traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask'
+                                                 (commandBufferHandle (commandBuffer))
+                                                 (faceMask)
+                                                 (writeMask))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetStencilReference
+  :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()
+
+-- | vkCmdSetStencilReference - Set stencil reference value dynamically for a
+-- command buffer
+--
+-- = Description
+--
+-- This command sets the stencil reference value for subsequent drawing
+-- commands when drawing using
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader objects>,
+-- or when the graphics pipeline is created with
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' set
+-- in
+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
+-- Otherwise, this state is specified by the
+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@reference@
+-- value used to create the currently active pipeline, for both front and
+-- back faces.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetStencilReference-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetStencilReference-faceMask-parameter# @faceMask@ /must/
+--     be a valid combination of
+--     'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values
+--
+-- -   #VUID-vkCmdSetStencilReference-faceMask-requiredbitmask# @faceMask@
+--     /must/ not be @0@
+--
+-- -   #VUID-vkCmdSetStencilReference-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-vkCmdSetStencilReference-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetStencilReference-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'
+cmdSetStencilReference :: forall io
+                        . (MonadIO io)
+                       => -- | @commandBuffer@ is the command buffer into which the command will be
+                          -- recorded.
+                          CommandBuffer
+                       -> -- | @faceMask@ is a bitmask of
+                          -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying
+                          -- the set of stencil state for which to update the reference value, as
+                          -- described above for 'cmdSetStencilCompareMask'.
+                          ("faceMask" ::: StencilFaceFlags)
+                       -> -- | @reference@ is the new value to use as the stencil reference value.
+                          ("reference" ::: Word32)
+                       -> io ()
+cmdSetStencilReference commandBuffer faceMask reference = liftIO $ do
+  let vkCmdSetStencilReferencePtr = pVkCmdSetStencilReference (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing
+  let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr
+  traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference'
+                                                 (commandBufferHandle (commandBuffer))
+                                                 (faceMask)
+                                                 (reference))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBindDescriptorSets
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()
+
+-- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer
+--
+-- = Description
+--
+-- 'cmdBindDescriptorSets' binds descriptor sets
+-- @pDescriptorSets@[0..@descriptorSetCount@-1] to set numbers
+-- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>
+-- set by @pipelineBindPoint@. Any bindings that were previously applied
+-- via these sets , or calls to
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT'
+-- or
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',
+-- are no longer valid.
+--
+-- Once bound, a descriptor set affects rendering of subsequent commands
+-- that interact with the given pipeline type in the command buffer until
+-- either a different set is bound to the same set number, or the set is
+-- disturbed as described in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.
+--
+-- A compatible descriptor set /must/ be bound for all set numbers that any
+-- shaders in a pipeline access, at the time that a drawing or dispatching
+-- command is recorded to execute using that pipeline. However, if none of
+-- the shaders in a pipeline statically use any bindings with a particular
+-- set number, then no descriptor set need be bound for that set number,
+-- even if the pipeline layout includes a non-trivial descriptor set layout
+-- for that set number.
+--
+-- When consuming a descriptor, a descriptor is considered valid if the
+-- descriptor is not undefined as described by
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptor-set-initial-state descriptor set allocation>.
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+-- feature is enabled, a null descriptor is also considered valid. A
+-- descriptor that was disturbed by
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>,
+-- or was never bound by 'cmdBindDescriptorSets' is not considered valid.
+-- If a pipeline accesses a descriptor either statically or dynamically
+-- depending on the
+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits',
+-- the consuming descriptor type in the pipeline /must/ match the
+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' in
+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo' for the
+-- descriptor to be considered valid. If a descriptor is a mutable
+-- descriptor, the consuming descriptor type in the pipeline /must/ match
+-- the active descriptor type for the descriptor to be considered valid.
+--
+-- Note
+--
+-- Further validation may be carried out beyond validation for descriptor
+-- types, e.g.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-input-validation Texel Input Validation>.
+--
+-- If any of the sets being bound include dynamic uniform or storage
+-- buffers, then @pDynamicOffsets@ includes one element for each array
+-- element in each dynamic descriptor type binding in each set. Values are
+-- taken from @pDynamicOffsets@ in an order such that all entries for set N
+-- come before set N+1; within a set, entries are ordered by the binding
+-- numbers in the descriptor set layouts; and within a binding array,
+-- elements are in order. @dynamicOffsetCount@ /must/ equal the total
+-- number of dynamic descriptors in the sets being bound.
+--
+-- The effective offset used for dynamic uniform and storage buffer
+-- bindings is the sum of the relative offset taken from @pDynamicOffsets@,
+-- and the base address of the buffer plus base offset in the descriptor
+-- set. The range of the dynamic uniform and storage buffer bindings is the
+-- buffer range as specified in the descriptor set.
+--
+-- Each of the @pDescriptorSets@ /must/ be compatible with the pipeline
+-- layout specified by @layout@. The layout used to program the bindings
+-- /must/ also be compatible with the pipeline used in subsequent
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>
+-- with that pipeline type, as defined in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>
+-- section.
+--
+-- The descriptor set contents bound by a call to 'cmdBindDescriptorSets'
+-- /may/ be consumed at the following times:
+--
+-- -   For descriptor bindings created with the
+--     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'
+--     bit set, the contents /may/ be consumed when the command buffer is
+--     submitted to a queue, or during shader execution of the resulting
+--     draws and dispatches, or any time in between. Otherwise,
+--
+-- -   during host execution of the command, or during shader execution of
+--     the resulting draws and dispatches, or any time in between.
+--
+-- Thus, the contents of a descriptor set binding /must/ not be altered
+-- (overwritten by an update command, or freed) between the first point in
+-- time that it /may/ be consumed, and when the command completes executing
+-- on the queue.
+--
+-- The contents of @pDynamicOffsets@ are consumed immediately during
+-- execution of 'cmdBindDescriptorSets'. Once all pending uses have
+-- completed, it is legal to update and reuse a descriptor set.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358# Each element of
+--     @pDescriptorSets@ /must/ have been allocated with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that matches (is the
+--     same as, or identically defined as) the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' at set /n/ in @layout@,
+--     where /n/ is the sum of @firstSet@ and the index into
+--     @pDescriptorSets@
+--
+-- -   #VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359#
+--     @dynamicOffsetCount@ /must/ be equal to the total number of dynamic
+--     descriptors in @pDescriptorSets@
+--
+-- -   #VUID-vkCmdBindDescriptorSets-firstSet-00360# The sum of @firstSet@
+--     and @descriptorSetCount@ /must/ be less than or equal to
+--     'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@
+--     provided when @layout@ was created
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#
+--     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s
+--     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971# Each element of
+--     @pDynamicOffsets@ which corresponds to a descriptor binding with
+--     type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
+--     /must/ be a multiple of
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minUniformBufferOffsetAlignment@
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972# Each element of
+--     @pDynamicOffsets@ which corresponds to a descriptor binding with
+--     type
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'
+--     /must/ be a multiple of
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minStorageBufferOffsetAlignment@
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each
+--     dynamic uniform or storage buffer binding in @pDescriptorSets@, the
+--     sum of the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dynamic-effective-offset effective offset>
+--     and the range of the binding /must/ be less than or equal to the
+--     size of the buffer
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715# For each
+--     dynamic uniform or storage buffer binding in @pDescriptorSets@, if
+--     the range was set with 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then
+--     @pDynamicOffsets@ which corresponds to the descriptor binding /must/
+--     be 0
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of
+--     @pDescriptorSets@ /must/ not have been allocated from a
+--     'Vulkan.Core10.Handles.DescriptorPool' with the
+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT'
+--     flag set
+--
+-- -   #VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
+--     is not enabled, each element of @pDescriptorSets@ /must/ be a valid
+--     'Vulkan.Core10.Handles.DescriptorSet'
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010# Each element of
+--     @pDescriptorSets@ /must/ have been allocated with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' which was not created
+--     with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-vkCmdBindDescriptorSets-layout-parameter# @layout@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.PipelineLayout' handle
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter#
+--     @pDescriptorSets@ /must/ be a valid pointer to an array of
+--     @descriptorSetCount@ valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     'Vulkan.Core10.Handles.DescriptorSet' handles
+--
+-- -   #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter# If
+--     @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a valid
+--     pointer to an array of @dynamicOffsetCount@ @uint32_t@ values
+--
+-- -   #VUID-vkCmdBindDescriptorSets-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-vkCmdBindDescriptorSets-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdBindDescriptorSets-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#
+--     @descriptorSetCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,
+--     @layout@, and the elements of @pDescriptorSets@ that are valid
+--     handles of non-ignored parameters /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Handles.DescriptorSet',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
+-- 'Vulkan.Core10.Handles.PipelineLayout'
+cmdBindDescriptorSets :: forall io
+                       . (MonadIO io)
+                      => -- | @commandBuffer@ is the command buffer that the descriptor sets will be
+                         -- bound to.
+                         CommandBuffer
+                      -> -- | @pipelineBindPoint@ is a
+                         -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the
+                         -- type of the pipeline that will use the descriptors. There is a separate
+                         -- set of bind points for each pipeline type, so binding one does not
+                         -- disturb the others.
+                         PipelineBindPoint
+                      -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to
+                         -- program the bindings.
+                         PipelineLayout
+                      -> -- | @firstSet@ is the set number of the first descriptor set to be bound.
+                         ("firstSet" ::: Word32)
+                      -> -- | @pDescriptorSets@ is a pointer to an array of handles to
+                         -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor
+                         -- sets to bind to.
+                         ("descriptorSets" ::: Vector DescriptorSet)
+                      -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values
+                         -- specifying dynamic offsets.
+                         ("dynamicOffsets" ::: Vector Word32)
+                      -> io ()
+cmdBindDescriptorSets commandBuffer
+                        pipelineBindPoint
+                        layout
+                        firstSet
+                        descriptorSets
+                        dynamicOffsets = liftIO . evalContT $ do
+  let vkCmdBindDescriptorSetsPtr = pVkCmdBindDescriptorSets (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdBindDescriptorSetsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorSets is null" Nothing Nothing
+  let vkCmdBindDescriptorSets' = mkVkCmdBindDescriptorSets vkCmdBindDescriptorSetsPtr
+  pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)
+  pPDynamicOffsets <- ContT $ allocaBytes @Word32 ((Data.Vector.length (dynamicOffsets)) * 4)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)
+  lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets'
+                                                       (commandBufferHandle (commandBuffer))
+                                                       (pipelineBindPoint)
+                                                       (layout)
+                                                       (firstSet)
+                                                       ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32))
+                                                       (pPDescriptorSets)
+                                                       ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32))
+                                                       (pPDynamicOffsets))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBindIndexBuffer
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()
+
+-- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindIndexBuffer-offset-08782# @offset@ /must/ be less
+--     than the size of @buffer@
+--
+-- -   #VUID-vkCmdBindIndexBuffer-offset-08783# The sum of @offset@ and the
+--     base address of the range of 'Vulkan.Core10.Handles.DeviceMemory'
+--     object that is backing @buffer@, /must/ be a multiple of the size of
+--     the type indicated by @indexType@
+--
+-- -   #VUID-vkCmdBindIndexBuffer-buffer-08784# @buffer@ /must/ have been
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdBindIndexBuffer-buffer-08785# If @buffer@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdBindIndexBuffer-indexType-08786# @indexType@ /must/ not
+--     be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'
+--
+-- -   #VUID-vkCmdBindIndexBuffer-indexType-08787# If @indexType@ is
+--     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindIndexBuffer-buffer-parameter# @buffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdBindIndexBuffer-indexType-parameter# @indexType@ /must/
+--     be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value
+--
+-- -   #VUID-vkCmdBindIndexBuffer-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-vkCmdBindIndexBuffer-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBindIndexBuffer-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindIndexBuffer-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.IndexType.IndexType'
+cmdBindIndexBuffer :: forall io
+                    . (MonadIO io)
+                   => -- | @commandBuffer@ is the command buffer into which the command is
+                      -- recorded.
+                      CommandBuffer
+                   -> -- | @buffer@ is the buffer being bound.
+                      Buffer
+                   -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index
+                      -- buffer address calculations.
+                      ("offset" ::: DeviceSize)
+                   -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value
+                      -- specifying the size of the indices.
+                      IndexType
+                   -> io ()
+cmdBindIndexBuffer commandBuffer buffer offset indexType = liftIO $ do
+  let vkCmdBindIndexBufferPtr = pVkCmdBindIndexBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing
+  let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr
+  traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer'
+                                             (commandBufferHandle (commandBuffer))
+                                             (buffer)
+                                             (offset)
+                                             (indexType))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBindVertexBuffers
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()
+
+-- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer
+--
+-- = Description
+--
+-- The values taken from elements i of @pBuffers@ and @pOffsets@ replace
+-- the current state for the vertex input binding @firstBinding@ + i, for i
+-- in [0, @bindingCount@). The vertex input binding is updated to start at
+-- the offset indicated by @pOffsets@[i] from the start of the buffer
+-- @pBuffers@[i]. All vertex input attributes that use each of these
+-- bindings will use these updated addresses in their address calculations
+-- for subsequent drawing commands. If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+-- feature is enabled, elements of @pBuffers@ /can/ be
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the
+-- vertex shader. If a vertex input attribute is bound to a vertex input
+-- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values
+-- taken from memory are considered to be zero, and missing G, B, or A
+-- components are
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindVertexBuffers-firstBinding-00624# @firstBinding@
+--     /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
+--
+-- -   #VUID-vkCmdBindVertexBuffers-firstBinding-00625# The sum of
+--     @firstBinding@ and @bindingCount@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pOffsets-00626# All elements of
+--     @pOffsets@ /must/ be less than the size of the corresponding element
+--     in @pBuffers@
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-00627# All elements of
+--     @pBuffers@ /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-00628# Each element of
+--     @pBuffers@ that is non-sparse /must/ be bound completely and
+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-04001# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all elements of @pBuffers@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-04002# If an element of
+--     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of @pOffsets@ /must/ be zero
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindVertexBuffers-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pBuffers-parameter# @pBuffers@ /must/
+--     be a valid pointer to an array of @bindingCount@ valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     'Vulkan.Core10.Handles.Buffer' handles
+--
+-- -   #VUID-vkCmdBindVertexBuffers-pOffsets-parameter# @pOffsets@ /must/
+--     be a valid pointer to an array of @bindingCount@
+--     'Vulkan.Core10.FundamentalTypes.DeviceSize' values
+--
+-- -   #VUID-vkCmdBindVertexBuffers-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-vkCmdBindVertexBuffers-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBindVertexBuffers-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindVertexBuffers-bindingCount-arraylength#
+--     @bindingCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdBindVertexBuffers-commonparent# Both of @commandBuffer@,
+--     and the elements of @pBuffers@ that are valid handles of non-ignored
+--     parameters /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdBindVertexBuffers :: forall io
+                      . (MonadIO io)
+                     => -- | @commandBuffer@ is the command buffer into which the command is
+                        -- recorded.
+                        CommandBuffer
+                     -> -- | @firstBinding@ is the index of the first vertex input binding whose
+                        -- state is updated by the command.
+                        ("firstBinding" ::: Word32)
+                     -> -- | @pBuffers@ is a pointer to an array of buffer handles.
+                        ("buffers" ::: Vector Buffer)
+                     -> -- | @pOffsets@ is a pointer to an array of buffer offsets.
+                        ("offsets" ::: Vector DeviceSize)
+                     -> io ()
+cmdBindVertexBuffers commandBuffer
+                       firstBinding
+                       buffers
+                       offsets = liftIO . evalContT $ do
+  let vkCmdBindVertexBuffersPtr = pVkCmdBindVertexBuffers (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdBindVertexBuffersPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers is null" Nothing Nothing
+  let vkCmdBindVertexBuffers' = mkVkCmdBindVertexBuffers vkCmdBindVertexBuffersPtr
+  let pBuffersLength = Data.Vector.length $ (buffers)
+  lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $
+    throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing
+  pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)
+  pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)
+  lift $ traceAroundEvent "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (firstBinding)
+                                                      ((fromIntegral pBuffersLength :: Word32))
+                                                      (pPBuffers)
+                                                      (pPOffsets))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDraw
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDraw - Draw primitives
+--
+-- = Description
+--
+-- When the command is executed, primitives are assembled using the current
+-- primitive topology and @vertexCount@ consecutive vertex indices with the
+-- first @vertexIndex@ value equal to @firstVertex@. The primitives are
+-- drawn @instanceCount@ times with @instanceIndex@ starting with
+-- @firstInstance@ and increasing sequentially for each instance. The
+-- assembled primitives execute the bound graphics pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDraw-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDraw-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08600# For each set /n/ that is statically used
+--     by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDraw-None-08601# For each push constant that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDraw-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor
+--     set, specified via '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-vkCmdDraw-None-08115# If the descriptors used by the
+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
+--     were specified via 'cmdBindDescriptorSets', the bound
+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08604# Descriptors in bound descriptor buffers,
+--     specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08605# If a descriptor is dynamically used with
+--     a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDraw-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDraw-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDraw-None-08608# If a pipeline is bound to the pipeline
+--     bind point used by this command, 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-vkCmdDraw-None-08609# If the 'Vulkan.Core10.Handles.Pipeline'
+--     object bound to the pipeline bind point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDraw-None-08610# If the 'Vulkan.Core10.Handles.Pipeline'
+--     object bound to the pipeline bind point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDraw-None-08611# If the 'Vulkan.Core10.Handles.Pipeline'
+--     object bound to the pipeline bind point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDraw-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-vkCmdDraw-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDraw-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-vkCmdDraw-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDraw-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDraw-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDraw-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDraw-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-vkCmdDraw-format-07753# If a 'Vulkan.Core10.Handles.ImageView'
+--     is accessed as a result of this command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDraw-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDraw-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command
+--     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDraw-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDraw-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07748# If any shader statically accesses an
+--     input attachment, a valid descriptor /must/ be bound to the pipeline
+--     via a descriptor set
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-09000# If a color attachment is written by any
+--     prior command in this subpass or by the load, store, or resolve
+--     operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDraw-None-09001# If a depth attachment is written by any
+--     prior command in this subpass or by the load, store, or resolve
+--     operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDraw-None-09002# If a stencil attachment is written by
+--     any prior command in this subpass or by the load, store, or resolve
+--     operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDraw-None-09003# If an attachment is written by any prior
+--     command in this subpass or by the load, store, or resolve operations
+--     for this subpass, it /must/ not be accessed in any way other than as
+--     an attachment, storage image, or sampled image by this command
+--
+-- -   #VUID-vkCmdDraw-None-06539# If any previously recorded command in
+--     the current subpass accessed an image subresource used as an
+--     attachment in this subpass in any way other than as an attachment,
+--     this command /must/ not write to that image subresource as an
+--     attachment
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07831# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then 'cmdSetViewport' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07832# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then 'cmdSetScissor' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07833# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08617# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08618# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08619# If a shader object that outputs line
+--     primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07834# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08620# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07835# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08621# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'cmdSetBlendConstants' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07836# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08622# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07837# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilCompareMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08623# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07838# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilWriteMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08624# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07839# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilReference' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08625# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08626# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07934# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDraw-None-07840# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08627# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07841# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08628# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07843# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08629# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07844# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08630# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07845# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08631# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07846# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08632# If a shader object is bound to any
+--     graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07847# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08633# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07848# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08634# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08635# If a shader object is bound to any
+--     graphics stage, 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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-09232# If a shader object is bound to any
+--     graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is
+--     enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08636# If a shader object is bound to any
+--     graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is
+--     enabled on the device, 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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-shadingRateImage-09234# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08637# If a shader object is bound to any
+--     graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-07878# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07879# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-exclusiveScissor-09235# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08638# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08639# If a shader object is bound to any
+--     graphics stage, 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-vkCmdDraw-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-vkCmdDraw-None-08640# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDraw-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-vkCmdDraw-None-08641# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDraw-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-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDraw-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-vkCmdDraw-None-08643# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDraw-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDraw-None-08644# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDraw-None-08876# If a shader object is bound to any
+--     graphics stage, the current render pass instance /must/ have been
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-dynamicRenderingUnusedAttachments-08910# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDraw-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDraw-None-09363# If there is no shader object bound to
+--     any graphics stage, the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDraw-None-09364# If the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-09365# If the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-09366# If there is a shader object bound to any
+--     graphics stage, and the current render pass includes a color
+--     attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDraw-rasterizationSamples-09367# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDraw-None-09368# If the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDraw-None-09369# If the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDraw-pFragmentSize-09370# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDraw-pFragmentSize-09371# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-07880# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08648# If the @VK_EXT_discard_rectangles@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07881# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08649# If the @VK_EXT_discard_rectangles@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDraw-dynamicRenderingUnusedAttachments-08914# If current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDraw-dynamicRenderingUnusedAttachments-08915# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDraw-dynamicRenderingUnusedAttachments-08917# If current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDraw-dynamicRenderingUnusedAttachments-08918# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDraw-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
+--     @rasterizationSamples@ for 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-vkCmdDraw-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
+--     @rasterizationSamples@ for 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-vkCmdDraw-pNext-07935# If this command has been called inside
+--     a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-pColorAttachments-08963# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDraw-pDepthAttachment-08964# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDraw-pStencilAttachment-08965# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-09237# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08651# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08652# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08653# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-alphaToCoverageEnable-08919# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDraw-None-08654# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-alphaToCoverageEnable-08920# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08657# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08658# If a shader object is bound to any
+--     graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08659# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08664# If the @VK_EXT_sample_locations@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08665# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08666# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08667# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object is bound to the vertex
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08668# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object that outputs line
+--     primitives is bound to the tessellation evaluation or geometry
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08669# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08670# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object is bound to the vertex
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08671# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object that outputs line
+--     primitives is bound to the tessellation evaluation or geometry
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07849# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08672# If the @VK_EXT_line_rasterization@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08674# If the @VK_NV_clip_space_w_scaling@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08675# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08678# If the @VK_NV_framebuffer_mixed_samples@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08679# If the @VK_NV_framebuffer_mixed_samples@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08680# If the @VK_NV_framebuffer_mixed_samples@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-pipelineFragmentShadingRate-09238# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-rasterizationSamples-07474# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDraw-None-09211# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-sampleLocationsEnable-07936# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDraw-sampleLocationsEnable-07937# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDraw-sampleLocationsEnable-07938# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-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-vkCmdDraw-None-08877# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-07850# If dynamic state was inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDraw-None-08684# If there is no bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDraw-None-08685# If there is no bound graphics pipeline,
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDraw-None-08686# If there is no bound graphics pipeline,
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDraw-None-08687# If there is no bound graphics pipeline,
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDraw-None-08688# If there is no bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDraw-None-08689# If there is no bound graphics pipeline,
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDraw-None-08690# If there is no bound graphics pipeline,
+--     and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDraw-None-08693# If there is no bound graphics pipeline,
+--     and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDraw-None-08694# If there is no bound graphics pipeline,
+--     and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDraw-None-08695# If there is no bound graphics pipeline,
+--     and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDraw-None-08696# If there is no bound graphics pipeline,
+--     and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDraw-None-08698# If any graphics shader is bound which
+--     was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDraw-None-08699# If any graphics shader is bound which
+--     was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDraw-None-08878# All bound graphics shader objects /must/
+--     have been created with identical or identically defined push
+--     constant ranges
+--
+-- -   #VUID-vkCmdDraw-None-08879# All bound graphics shader objects /must/
+--     have been created with identical or identically defined arrays of
+--     descriptor set layouts
+--
+-- -   #VUID-vkCmdDraw-colorAttachmentCount-09372# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDraw-None-08880# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-pDynamicStates-08715# If the bound graphics pipeline
+--     state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDraw-pDynamicStates-08716# If the bound graphics pipeline
+--     state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
+--
+-- -   #VUID-vkCmdDraw-None-09116# If a shader object is bound to any
+--     graphics stage or the currently bound graphics pipeline was created
+--     with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, any resource written to by the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command /must/ not be an unprotected resource
+--
+-- -   #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, pipeline stages other than the framebuffer-space
+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command /must/ not
+--     write to any resource
+--
+-- -   #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of
+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
+--     point used by this command uses the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
+--     capability, then @commandBuffer@ /must/ not be a protected command
+--     buffer
+--
+-- -   #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDraw-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any
+--     attribute data fetched /must/ be entirely contained within the
+--     corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDraw-None-07842# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was
+--     created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was
+--     created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDraw-None-08881# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDraw-Input-07939# If the bound graphics pipeline state
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDraw-Input-08734# If the bound graphics pipeline state
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDraw-format-08936# If there is a shader object bound to a
+--     graphics stage or the currently bound graphics pipeline was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDraw-format-08937# If there is a shader object bound to a
+--     graphics stage or the currently bound graphics pipeline was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDraw-None-09203# If there is a shader object bound to a
+--     graphics stage or the currently bound graphics pipeline was created
+--     with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDraw-None-08882# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-08883# If a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-rasterizerDiscardEnable-08884# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDraw-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDraw-None-08885# There /must/ be no shader object bound
+--     to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDraw-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-vkCmdDraw-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDraw-renderpass# This command /must/ only be called
+--     inside of a render pass instance
+--
+-- -   #VUID-vkCmdDraw-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_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdDraw :: forall io
+         . (MonadIO io)
+        => -- | @commandBuffer@ is the command buffer into which the command is
+           -- recorded.
+           CommandBuffer
+        -> -- | @vertexCount@ is the number of vertices to draw.
+           ("vertexCount" ::: Word32)
+        -> -- | @instanceCount@ is the number of instances to draw.
+           ("instanceCount" ::: Word32)
+        -> -- | @firstVertex@ is the index of the first vertex to draw.
+           ("firstVertex" ::: Word32)
+        -> -- | @firstInstance@ is the instance ID of the first instance to draw.
+           ("firstInstance" ::: Word32)
+        -> io ()
+cmdDraw commandBuffer
+          vertexCount
+          instanceCount
+          firstVertex
+          firstInstance = liftIO $ do
+  let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing
+  let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr
+  traceAroundEvent "vkCmdDraw" (vkCmdDraw'
+                                  (commandBufferHandle (commandBuffer))
+                                  (vertexCount)
+                                  (instanceCount)
+                                  (firstVertex)
+                                  (firstInstance))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawIndexed
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()
+
+-- | vkCmdDrawIndexed - Draw primitives with indexed vertices
+--
+-- = Description
+--
+-- When the command is executed, primitives are assembled using the current
+-- primitive topology and @indexCount@ vertices whose indices are retrieved
+-- from the index buffer. The index buffer is treated as an array of
+-- tightly packed unsigned integers of size defined by the
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@indexType@
+-- or the 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer
+-- was bound.
+--
+-- The first vertex index is at an offset of @firstIndex@ × @indexSize@ +
+-- @offset@ within the bound index buffer, where @offset@ is the offset
+-- specified by 'cmdBindIndexBuffer' or
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', and
+-- @indexSize@ is the byte size of the type specified by @indexType@.
+-- Subsequent index values are retrieved from consecutive locations in the
+-- index buffer. Indices are first compared to the primitive restart value,
+-- then zero extended to 32 bits (if the @indexType@ is
+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or
+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have
+-- @vertexOffset@ added to them, before being supplied as the @vertexIndex@
+-- value.
+--
+-- The primitives are drawn @instanceCount@ times with @instanceIndex@
+-- starting with @firstInstance@ and increasing sequentially for each
+-- instance. The assembled primitives execute the bound graphics pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndexed-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexed-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound
+--     descriptor set, specified via '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-vkCmdDrawIndexed-None-08115# If the descriptors used by the
+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
+--     were specified via 'cmdBindDescriptorSets', the bound
+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08604# Descriptors in bound descriptor
+--     buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08605# If a descriptor is dynamically
+--     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08608# If a pipeline is bound to the
+--     pipeline bind point used by this command, 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-vkCmdDrawIndexed-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexed-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexed-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawIndexed-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawIndexed-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndexed-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawIndexed-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawIndexed-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07748# If any shader statically accesses
+--     an input attachment, a valid descriptor /must/ be bound to the
+--     pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-09000# If a color attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09001# If a depth attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09003# If an attachment is written by
+--     any prior command in this subpass or by the load, store, or resolve
+--     operations for this subpass, it /must/ not be accessed in any way
+--     other than as an attachment, storage image, or sampled image by this
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass in any way other than as an
+--     attachment, this command /must/ not write to that image subresource
+--     as an attachment
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07831# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then 'cmdSetViewport' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07832# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then 'cmdSetScissor' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07833# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08617# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08618# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08619# If a shader object that outputs
+--     line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07834# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08620# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07835# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08621# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'cmdSetBlendConstants' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07836# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08622# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07837# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilCompareMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08623# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07838# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilWriteMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08624# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07839# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilReference' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08625# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08626# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07840# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08627# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07841# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08628# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07843# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08629# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07844# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08630# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07845# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08631# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07846# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08632# If a shader object is bound to
+--     any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07847# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08633# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07848# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08634# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08635# If a shader object is bound to
+--     any graphics stage, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-09232# If a shader object is bound to
+--     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
+--     is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08636# If a shader object is bound to
+--     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
+--     is enabled on the device, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-shadingRateImage-09234# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08637# If a shader object is bound to
+--     any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07878# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07879# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-exclusiveScissor-09235# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08638# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08639# If a shader object is bound to
+--     any graphics stage, 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08640# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08641# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08643# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexed-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08644# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08876# If a shader object is bound to
+--     any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndexed-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09363# If there is no shader object
+--     bound to any graphics stage, the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09366# If there is a shader object bound
+--     to any graphics stage, and the current render pass includes a color
+--     attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-rasterizationSamples-09367# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexed-pFragmentSize-09370# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexed-pFragmentSize-09371# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-07880# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07881# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914# If
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917# If
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexed-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndexed-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndexed-pNext-07935# If this command has been called
+--     inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexed-pDepthAttachment-08964# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexed-pStencilAttachment-08965# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-09237# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08651# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08652# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08653# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-alphaToCoverageEnable-08919# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08654# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08657# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08658# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08659# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08664# If the @VK_EXT_sample_locations@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08665# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07849# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08675# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-rasterizationSamples-07474# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawIndexed-None-09211# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-sampleLocationsEnable-07936# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-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-vkCmdDrawIndexed-None-08877# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07850# If dynamic state was inherited
+--     from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08684# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08685# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08686# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08687# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08688# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08689# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08690# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08693# If there is no bound graphics
+--     pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08694# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08695# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08696# If there is no bound graphics
+--     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08698# If any graphics shader is bound
+--     which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08699# If any graphics shader is bound
+--     which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08878# All bound graphics shader objects
+--     /must/ have been created with identical or identically defined push
+--     constant ranges
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08879# All bound graphics shader objects
+--     /must/ have been created with identical or identically defined
+--     arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09372# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08880# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-pDynamicStates-08715# If the bound graphics
+--     pipeline state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexed-pDynamicStates-08716# If the bound graphics
+--     pipeline state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09116# If a shader object is bound to
+--     any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, any resource written to by the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command /must/ not be an unprotected resource
+--
+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, pipeline stages other than the framebuffer-space
+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command /must/ not
+--     write to any resource
+--
+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader
+--     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline
+--     bind point used by this command uses the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
+--     capability, then @commandBuffer@ /must/ not be a protected command
+--     buffer
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings
+--     accessed via vertex input variables declared in the vertex shader
+--     entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer
+--     binding, any attribute data fetched /must/ be entirely contained
+--     within the corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07842# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline
+--     was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08881# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndexed-Input-07939# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawIndexed-Input-08734# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawIndexed-format-08936# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawIndexed-format-08937# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09203# If there is a shader object bound
+--     to a graphics stage or the currently bound graphics pipeline was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08882# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08883# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-08884# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexed-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexed-None-08885# There /must/ be no shader object
+--     bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound
+--
+-- -   #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
+--     @indexType@, where the index buffer, @indexType@, and @offset@ are
+--     specified via 'cmdBindIndexBuffer'
+--
+-- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# 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' or
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is
+--     used to bind the index buffer, the size of the bound index buffer is
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawIndexed-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-vkCmdDrawIndexed-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawIndexed-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_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdDrawIndexed :: forall io
+                . (MonadIO io)
+               => -- | @commandBuffer@ is the command buffer into which the command is
+                  -- recorded.
+                  CommandBuffer
+               -> -- | @indexCount@ is the number of vertices to draw.
+                  ("indexCount" ::: Word32)
+               -> -- | @instanceCount@ is the number of instances to draw.
+                  ("instanceCount" ::: Word32)
+               -> -- | @firstIndex@ is the base index within the index buffer.
+                  ("firstIndex" ::: Word32)
+               -> -- | @vertexOffset@ is the value added to the vertex index before indexing
+                  -- into the vertex buffer.
+                  ("vertexOffset" ::: Int32)
+               -> -- | @firstInstance@ is the instance ID of the first instance to draw.
+                  ("firstInstance" ::: Word32)
+               -> io ()
+cmdDrawIndexed commandBuffer
+                 indexCount
+                 instanceCount
+                 firstIndex
+                 vertexOffset
+                 firstInstance = liftIO $ do
+  let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawIndexedPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing
+  let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr
+  traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed'
+                                         (commandBufferHandle (commandBuffer))
+                                         (indexCount)
+                                         (instanceCount)
+                                         (firstIndex)
+                                         (vertexOffset)
+                                         (firstInstance))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawIndirect
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawIndirect - Draw primitives with indirect parameters
+--
+-- = Description
+--
+-- 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the
+-- parameters are read by the device from a buffer during execution.
+-- @drawCount@ draws are executed by the command, with parameters taken
+-- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for
+-- each successive draw. The parameters of each draw are encoded in an
+-- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If
+-- @drawCount@ is less than or equal to one, @stride@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndirect-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirect-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound
+--     descriptor set, specified via '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-vkCmdDrawIndirect-None-08115# If the descriptors used by the
+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
+--     were specified via 'cmdBindDescriptorSets', the bound
+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08604# Descriptors in bound descriptor
+--     buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08605# If a descriptor is dynamically
+--     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08608# If a pipeline is bound to the
+--     pipeline bind point used by this command, 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-vkCmdDrawIndirect-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndirect-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndirect-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawIndirect-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawIndirect-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndirect-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawIndirect-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawIndirect-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-09000# If a color attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09001# If a depth attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09003# If an attachment is written by
+--     any prior command in this subpass or by the load, store, or resolve
+--     operations for this subpass, it /must/ not be accessed in any way
+--     other than as an attachment, storage image, or sampled image by this
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass in any way other than as an
+--     attachment, this command /must/ not write to that image subresource
+--     as an attachment
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07831# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then 'cmdSetViewport' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07832# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then 'cmdSetScissor' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07833# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08617# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08618# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08619# If a shader object that outputs
+--     line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07834# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08620# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07835# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08621# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'cmdSetBlendConstants' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07836# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08622# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07837# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilCompareMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08623# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07838# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilWriteMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08624# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07839# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilReference' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08625# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08626# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07840# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08627# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07841# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08628# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07843# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08629# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07844# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08630# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07845# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08631# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07846# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08632# If a shader object is bound to
+--     any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07847# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08633# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07848# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08634# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08635# If a shader object is bound to
+--     any graphics stage, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-09232# If a shader object is bound to
+--     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
+--     is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08636# If a shader object is bound to
+--     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
+--     is enabled on the device, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-shadingRateImage-09234# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08637# If a shader object is bound to
+--     any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07878# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07879# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-exclusiveScissor-09235# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08638# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08639# If a shader object is bound to
+--     any graphics stage, 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08640# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08641# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08643# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirect-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08644# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08876# If a shader object is bound to
+--     any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndirect-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09363# If there is no shader object
+--     bound to any graphics stage, the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09366# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-rasterizationSamples-09367# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirect-pFragmentSize-09370# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirect-pFragmentSize-09371# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-07880# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07881# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914# If
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917# If
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirect-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndirect-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndirect-pNext-07935# If this command has been called
+--     inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirect-pDepthAttachment-08964# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirect-pStencilAttachment-08965# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-09237# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08651# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08652# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08653# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-alphaToCoverageEnable-08919# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08654# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08657# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08658# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08659# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08664# If the @VK_EXT_sample_locations@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08665# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07849# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08675# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-rasterizationSamples-07474# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawIndirect-None-09211# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-sampleLocationsEnable-07936# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-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-vkCmdDrawIndirect-None-08877# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07850# If dynamic state was inherited
+--     from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08684# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08685# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08686# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08687# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08688# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08689# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08690# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08693# If there is no bound graphics
+--     pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08694# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08695# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08696# If there is no bound graphics
+--     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08698# If any graphics shader is bound
+--     which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08699# If any graphics shader is bound
+--     which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09372# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08880# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-pDynamicStates-08715# If the bound graphics
+--     pipeline state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirect-pDynamicStates-08716# If the bound graphics
+--     pipeline state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09116# If a shader object is bound to
+--     any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings
+--     accessed via vertex input variables declared in the vertex shader
+--     entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer
+--     binding, any attribute data fetched /must/ be entirely contained
+--     within the corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawIndirect-None-07842# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline
+--     was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08881# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndirect-Input-07939# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawIndirect-Input-08734# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawIndirect-format-08936# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawIndirect-format-08937# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawIndirect-None-09203# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08882# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08883# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-08884# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirect-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirect-None-08885# There /must/ be no shader object
+--     bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then
+--     it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple
+--     of @4@
+--
+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/
+--     not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less
+--     than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater
+--     than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater
+--     than or equal to
+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')
+--
+-- -   #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to
+--     @1@, (@offset@ +
+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be
+--     less than or equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater
+--     than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be
+--     less than or equal to the size of @buffer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawIndirect-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-vkCmdDrawIndirect-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawIndirect-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawIndirect-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_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawIndirect :: 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)
+                -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
+                   ("drawCount" ::: Word32)
+                -> -- | @stride@ is the byte stride between successive sets of draw parameters.
+                   ("stride" ::: Word32)
+                -> io ()
+cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do
+  let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawIndirectPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing
+  let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr
+  traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect'
+                                          (commandBufferHandle (commandBuffer))
+                                          (buffer)
+                                          (offset)
+                                          (drawCount)
+                                          (stride))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawIndexedIndirect
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and
+-- indexed vertices
+--
+-- = Description
+--
+-- 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except
+-- that the parameters are read by the device from a buffer during
+-- execution. @drawCount@ draws are executed by the command, with
+-- parameters taken from @buffer@ starting at @offset@ and increasing by
+-- @stride@ bytes for each successive draw. The parameters of each draw are
+-- encoded in an array of
+-- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If
+-- @drawCount@ is less than or equal to one, @stride@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound
+--     descriptor set, specified via '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-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used
+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
+--     point were specified via 'cmdBindDescriptorSets', the bound
+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-vkCmdDrawIndexedIndirect-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexedIndirect-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexedIndirect-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawIndexedIndirect-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndexedIndirect-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawIndexedIndirect-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If
+--     any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-09000# If a color attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09001# If a depth attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09002# If a stencil attachment
+--     is written by any prior command in this subpass or by the load,
+--     store, or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then 'cmdSetViewport' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then 'cmdSetScissor' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the
+--     current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08617# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'cmdSetLineWidth' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08618# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08619# If a shader object that
+--     outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'cmdSetLineWidth' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08620# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08621# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'cmdSetBlendConstants' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetDepthBounds' /must/ have been called in the current command
+--     buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08622# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilCompareMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08623# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilWriteMask' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08624# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'cmdSetStencilReference' /must/ have been called in the current
+--     command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08625# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08626# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08627# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08628# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08629# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08630# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08631# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08632# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08633# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08634# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08635# If a shader object is
+--     bound to any graphics stage, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-09232# If a shader object is
+--     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08636# If a shader object is
+--     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08637# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08638# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08639# If a shader object is
+--     bound to any graphics stage, 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08640# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08641# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08643# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08644# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08876# If a shader object is
+--     bound to any graphics stage, the current render pass instance /must/
+--     have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09363# If there is no shader
+--     object bound to any graphics stage, the current render pass instance
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09364# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09365# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09366# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367# If there
+--     is a shader object bound to any graphics stage, and the current
+--     render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09368# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09369# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirect-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirect-pNext-07935# If this command has been
+--     called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-09237# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08651# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08652# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08653# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08654# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08657# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08658# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08659# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-rasterizationSamples-07474# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawIndexedIndirect-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08698# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08699# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08880# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09116# If a shader object is
+--     bound to any graphics stage or the currently bound graphics pipeline
+--     was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings
+--     accessed via vertex input variables declared in the vertex shader
+--     entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer
+--     binding, any attribute data fetched /must/ be entirely contained
+--     within the corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07842# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics
+--     pipeline was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08881# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-Input-07939# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-Input-08734# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-format-08936# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-format-08937# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09203# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08882# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08883# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-08884# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08885# There /must/ be no shader
+--     object bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have
+--     been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@
+--     /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/
+--     be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #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
+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is
+--     equal to @1@, (@offset@ +
+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
+--     /must/ be less than or equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is
+--     greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))
+--     /must/ be less than or equal to the size of @buffer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only
+--     be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawIndexedIndirect-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_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawIndexedIndirect :: 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)
+                       -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
+                          ("drawCount" ::: Word32)
+                       -> -- | @stride@ is the byte stride between successive sets of draw parameters.
+                          ("stride" ::: Word32)
+                       -> io ()
+cmdDrawIndexedIndirect commandBuffer
+                         buffer
+                         offset
+                         drawCount
+                         stride = liftIO $ do
+  let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing
+  let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr
+  traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect'
+                                                 (commandBufferHandle (commandBuffer))
+                                                 (buffer)
+                                                 (offset)
+                                                 (drawCount)
+                                                 (stride))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatch
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDispatch - Dispatch compute work items
+--
+-- = Description
+--
+-- When the command is executed, a global workgroup consisting of
+-- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is
+-- assembled.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDispatch-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDispatch-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-None-08600# For each set /n/ that is statically
+--     used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatch-None-08601# For each push constant that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatch-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor
+--     set, specified via '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-vkCmdDispatch-None-08115# If the descriptors used by the
+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
+--     were specified via 'cmdBindDescriptorSets', the bound
+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-None-08604# Descriptors in bound descriptor
+--     buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-None-08605# If a descriptor is dynamically used
+--     with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDispatch-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatch-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDispatch-None-08608# If a pipeline is bound to the
+--     pipeline bind point used by this command, 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-vkCmdDispatch-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatch-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatch-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatch-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-vkCmdDispatch-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDispatch-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-vkCmdDispatch-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDispatch-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDispatch-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatch-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatch-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-vkCmdDispatch-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDispatch-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDispatch-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-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-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command
+--     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDispatch-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDispatch-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDispatch-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-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, any resource written to by the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command /must/ not be an unprotected resource
+--
+-- -   #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, pipeline stages other than the framebuffer-space
+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command /must/ not
+--     write to any resource
+--
+-- -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages
+--     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
+--     point used by this command uses the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
+--     capability, then @commandBuffer@ /must/ not be a protected command
+--     buffer
+--
+-- -   #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less
+--     than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]
+--
+-- -   #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less
+--     than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]
+--
+-- -   #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less
+--     than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDispatch-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-vkCmdDispatch-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support compute operations
+--
+-- -   #VUID-vkCmdDispatch-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdDispatch-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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdDispatch :: 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 ()
+cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do
+  let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDispatchPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing
+  let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr
+  traceAroundEvent "vkCmdDispatch" (vkCmdDispatch'
+                                      (commandBufferHandle (commandBuffer))
+                                      (groupCountX)
+                                      (groupCountY)
+                                      (groupCountZ))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchIndirect
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()
+
+-- | vkCmdDispatchIndirect - Dispatch compute work items with indirect
+-- parameters
+--
+-- = Description
+--
+-- 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' 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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDispatchIndirect-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchIndirect-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound
+--     descriptor set, specified via '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-vkCmdDispatchIndirect-None-08115# If the descriptors used by
+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind
+--     point were specified via 'cmdBindDescriptorSets', the bound
+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDispatchIndirect-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchIndirect-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchIndirect-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-vkCmdDispatchIndirect-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchIndirect-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchIndirect-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDispatchIndirect-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDispatchIndirect-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchIndirect-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDispatchIndirect-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDispatchIndirect-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@
+--     /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and
+--     the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'
+--     /must/ be less than or equal to the size of @buffer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDispatchIndirect-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-vkCmdDispatchIndirect-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support compute operations
+--
+-- -   #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdDispatchIndirect-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDispatchIndirect-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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDispatchIndirect :: forall io
+                     . (MonadIO io)
+                    => -- | @commandBuffer@ is the command buffer into which the command will be
+                       -- recorded.
+                       CommandBuffer
+                    -> -- | @buffer@ is the buffer containing dispatch parameters.
+                       Buffer
+                    -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.
+                       ("offset" ::: DeviceSize)
+                    -> io ()
+cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do
+  let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing
+  let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr
+  traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect'
+                                              (commandBufferHandle (commandBuffer))
+                                              (buffer)
+                                              (offset))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdCopyBuffer
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()
+
+-- | vkCmdCopyBuffer - Copy data between buffer regions
+--
+-- = Description
+--
+-- Each source region specified by @pRegions@ is copied from the source
+-- buffer to the destination region of the destination buffer. If any of
+-- the specified regions in @srcBuffer@ overlaps in memory with any of the
+-- specified regions in @dstBuffer@, values read from those overlapping
+-- regions are undefined.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01822# 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, @srcBuffer@ /must/ not be a protected buffer
+--
+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01823# 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, @dstBuffer@ /must/ not be a protected buffer
+--
+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
+--
+-- -   #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of
+--     each element of @pRegions@ /must/ be less than the size of
+--     @srcBuffer@
+--
+-- -   #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of
+--     each element of @pRegions@ /must/ be less than the size of
+--     @dstBuffer@
+--
+-- -   #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element
+--     of @pRegions@ /must/ be less than or equal to the size of
+--     @srcBuffer@ minus @srcOffset@
+--
+-- -   #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element
+--     of @pRegions@ /must/ be less than or equal to the size of
+--     @dstBuffer@ minus @dstOffset@
+--
+-- -   #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source
+--     regions, and the union of the destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a
+--     valid pointer to an array of @regionCount@ valid 'BufferCopy'
+--     structures
+--
+-- -   #VUID-vkCmdCopyBuffer-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-vkCmdCopyBuffer-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdCopyBuffer-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/
+--     be greater than @0@
+--
+-- -   #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,
+--     @dstBuffer@, and @srcBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdCopyBuffer :: forall io
+               . (MonadIO io)
+              => -- | @commandBuffer@ is the command buffer into which the command will be
+                 -- recorded.
+                 CommandBuffer
+              -> -- | @srcBuffer@ is the source buffer.
+                 ("srcBuffer" ::: Buffer)
+              -> -- | @dstBuffer@ is the destination buffer.
+                 ("dstBuffer" ::: Buffer)
+              -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures
+                 -- specifying the regions to copy.
+                 ("regions" ::: Vector BufferCopy)
+              -> io ()
+cmdCopyBuffer commandBuffer
+                srcBuffer
+                dstBuffer
+                regions = liftIO . evalContT $ do
+  let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing
+  let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr
+  pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)
+  lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer'
+                                               (commandBufferHandle (commandBuffer))
+                                               (srcBuffer)
+                                               (dstBuffer)
+                                               ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+                                               (pPRegions))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdCopyImage
+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()
+
+-- | vkCmdCopyImage - Copy data between images
+--
+-- = Description
+--
+-- Each source region specified by @pRegions@ is copied from the source
+-- image to the destination region of the destination image. If any of the
+-- specified regions in @srcImage@ overlaps in memory with any of the
+-- specified regions in @dstImage@, values read from those overlapping
+-- regions are undefined.
+--
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Multi-planar images>
+-- /can/ only be copied on a per-plane basis, and the subresources used in
+-- each region when copying to or from such images /must/ specify only one
+-- plane, though different regions /can/ specify different planes. When
+-- copying planes of multi-planar images, the format considered is the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible format for that plane>,
+-- rather than the format of the multi-planar image.
+--
+-- If the format of the destination image has a different
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent>
+-- than the source image (e.g. one is a compressed format), the offset and
+-- extent for each of the regions specified is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility scaled according to the block extents of each format>
+-- to match in size. Copy regions for each image /must/ be aligned to a
+-- multiple of the texel block extent in each dimension, except at the
+-- edges of the image, where region extents /must/ match the edge of the
+-- image.
+--
+-- Image data /can/ be copied between images with different image types. If
+-- one image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other
+-- image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple
+-- layers, then each slice is copied to or from a different layer; @depth@
+-- slices in the 3D image correspond to @layerCount@ layers in the 2D
+-- image, with an effective @depth@ of @1@ used for the 2D image. If
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+-- is enabled, all other combinations are allowed and function as if 1D
+-- images are 2D images with a height of 1. Otherwise, other combinations
+-- of image types are disallowed.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdCopyImage-commandBuffer-01825# 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, @srcImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdCopyImage-commandBuffer-01826# 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, @dstImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstImage@ /must/ not be an unprotected image
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-00124# The union of all source
+--     regions, and the union of all destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01995# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @srcImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'
+--
+-- -   #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/
+--     specify the layout of the image subresources of @srcImage@ specified
+--     in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/
+--     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01996# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
+--
+-- -   #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/
+--     specify the layout of the image subresources of @dstImage@ specified
+--     in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/
+--     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01548# If the
+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
+--     @dstImage@ is not a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
+--     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
+--     @dstImage@ /must/ be
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibility size-compatible>
+--
+-- -   #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,
+--     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane
+--     /must/ be compatible according to
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>
+--     for the plane being copied
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-09247# If the
+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
+--     @dstImage@ is a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formats compressed image format>,
+--     the formats /must/ have the same texel block extent
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@
+--     and @dstImage@ /must/ match
+--
+-- -   #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@
+--     members of each element of @pRegions@ /must/ respect the image
+--     transfer granularity requirements of @commandBuffer@’s command
+--     pool’s queue family, as described in
+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
+--
+-- -   #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@
+--     members of each element of @pRegions@ /must/ respect the image
+--     transfer granularity requirements of @commandBuffer@’s command
+--     pool’s queue family, as described in
+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor
+--     @dstImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
+--     then for each element of @pRegions@, @srcSubresource.aspectMask@ and
+--     @dstSubresource.aspectMask@ /must/ match
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-08713# If @srcImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @srcSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-08714# If @dstImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @dstSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
+--     and the @dstImage@ does not have a multi-planar image format, then
+--     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/
+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
+--     and the @srcImage@ does not have a multi-planar image format, then
+--     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/
+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-vkCmdCopyImage-apiVersion-07932# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled, or
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
+--     element of @pRegions@, @srcSubresource.baseArrayLayer@ and
+--     @dstSubresource.baseArrayLayer@ /must/ both be @0@, and
+--     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/
+--     both be @1@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @srcSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @dstSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of
+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects
+--     present in @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-aspectMask-00143# For each element of
+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects
+--     present in @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcOffset-00144# For each element of
+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the width of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcOffset-00145# For each element of
+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the height of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImage-srcOffset-00147# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
+--     of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the depth of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/
+--     be @1@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/
+--     be @1@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @srcOffset.z@ /must/ be @0@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @dstOffset.z@ /must/ be @0@
+--
+-- -   #VUID-vkCmdCopyImage-apiVersion-07933# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled, and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the
+--     same 'Vulkan.Core10.Enums.ImageType.ImageType'
+--
+-- -   #VUID-vkCmdCopyImage-apiVersion-08969# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled, and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, @srcImage@ or @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @extent.depth@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-07743# If @srcImage@ and @dstImage@
+--     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, one /must/ be
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other /must/
+--     be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-08793# If @srcImage@ and @dstImage@
+--     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', for each
+--     element of @pRegions@, if neither of the @layerCount@ members of
+--     @srcSubresource@ or @dstSubresource@ are
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the
+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/
+--     match
+--
+-- -   #VUID-vkCmdCopyImage-maintenance5-08792# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, the @layerCount@ member of @srcSubresource@
+--     or @dstSubresource@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-08794# If @srcImage@ and @dstImage@
+--     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', and one of
+--     the @layerCount@ members of @srcSubresource@ or @dstSubresource@ is
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other
+--     member /must/ be either
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the
+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
+--     used to create the image minus @baseArrayLayer@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@
+--     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then
+--     for each element of @pRegions@, @extent.depth@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
+--     element of @pRegions@, @extent.depth@ /must/ equal
+--     @srcSubresource.layerCount@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
+--     element of @pRegions@, @extent.depth@ /must/ equal
+--     @dstSubresource.layerCount@
+--
+-- -   #VUID-vkCmdCopyImage-dstOffset-00150# For each element of
+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the width of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-dstOffset-00151# For each element of
+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the height of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImage-dstOffset-00153# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
+--     of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the depth of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-07278# For each element of @pRegions@,
+--     @srcOffset.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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-07279# For each element of @pRegions@,
+--     @srcOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-07280# For each element of @pRegions@,
+--     @srcOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-07281# For each element of @pRegions@,
+--     @dstOffset.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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-07282# For each element of @pRegions@,
+--     @dstOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-07283# For each element of @pRegions@,
+--     @dstOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01728# For each element of @pRegions@,
+--     if the sum of @srcOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @srcSubresource@,
+--     @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01729# For each element of @pRegions@,
+--     if the sum of @srcOffset.y@ and @extent.height@ does not equal the
+--     height of the subresource specified by @srcSubresource@,
+--     @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-01730# For each element of @pRegions@,
+--     if the sum of @srcOffset.z@ and @extent.depth@ does not equal the
+--     depth of the subresource specified by @srcSubresource@,
+--     @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01732# For each element of @pRegions@,
+--     if the sum of @dstOffset.x@ and @extent.width@ does not equal the
+--     width of the subresource specified by @dstSubresource@,
+--     @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01733# For each element of @pRegions@,
+--     if the sum of @dstOffset.y@ and @extent.height@ does not equal the
+--     height of the subresource specified by @dstSubresource@,
+--     @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-01734# For each element of @pRegions@,
+--     if the sum of @dstOffset.z@ and @extent.depth@ does not equal the
+--     depth of the subresource specified by @dstSubresource@,
+--     @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any
+--     element of @pRegions@ includes any flag other than
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--     or @srcImage@ was not created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
+--     @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any
+--     element of @pRegions@ includes any flag other than
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--     or @dstImage@ was not created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
+--     @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any
+--     element of @pRegions@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
+--     and @srcImage@ was created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--     used to create @srcImage@
+--
+-- -   #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any
+--     element of @pRegions@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
+--     and @dstImage@ was created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--     used to create @dstImage@
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-07966# If @srcImage@ is non-sparse
+--     then the image or the specified /disjoint/ plane /must/ be bound
+--     completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyImage-srcSubresource-07967# The
+--     @srcSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
+--
+-- -   #VUID-vkCmdCopyImage-srcSubresource-07968# The
+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-07969# @srcImage@ /must/ not have been
+--     created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-07966# If @dstImage@ is non-sparse
+--     then the image or the specified /disjoint/ plane /must/ be bound
+--     completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyImage-dstSubresource-07967# The
+--     @dstSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
+--
+-- -   #VUID-vkCmdCopyImage-dstSubresource-07968# The
+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
+--     each element of @pRegions@ , if @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-07969# @dstImage@ /must/ not have been
+--     created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a
+--     valid pointer to an array of @regionCount@ valid 'ImageCopy'
+--     structures
+--
+-- -   #VUID-vkCmdCopyImage-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-vkCmdCopyImage-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdCopyImage-videocoding# This command /must/ only be called
+--     outside of a video coding scope
+--
+-- -   #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/
+--     be greater than @0@
+--
+-- -   #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,
+--     @dstImage@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
+-- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+cmdCopyImage :: forall io
+              . (MonadIO io)
+             => -- | @commandBuffer@ is the command buffer into which the command will be
+                -- recorded.
+                CommandBuffer
+             -> -- | @srcImage@ is the source image.
+                ("srcImage" ::: Image)
+             -> -- | @srcImageLayout@ is the current layout of the source image subresource.
+                ("srcImageLayout" ::: ImageLayout)
+             -> -- | @dstImage@ is the destination image.
+                ("dstImage" ::: Image)
+             -> -- | @dstImageLayout@ is the current layout of the destination image
+                -- subresource.
+                ("dstImageLayout" ::: ImageLayout)
+             -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying
+                -- the regions to copy.
+                ("regions" ::: Vector ImageCopy)
+             -> io ()
+cmdCopyImage commandBuffer
+               srcImage
+               srcImageLayout
+               dstImage
+               dstImageLayout
+               regions = liftIO . evalContT $ do
+  let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing
+  let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr
+  pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)
+  lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage'
+                                              (commandBufferHandle (commandBuffer))
+                                              (srcImage)
+                                              (srcImageLayout)
+                                              (dstImage)
+                                              (dstImageLayout)
+                                              ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+                                              (pPRegions))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBlitImage
+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()
+
+-- | vkCmdBlitImage - Copy regions of an image, potentially performing format
+-- conversion,
+--
+-- = Description
+--
+-- 'cmdBlitImage' /must/ not be used for multisampled source or destination
+-- images. Use 'cmdResolveImage' for this purpose.
+--
+-- As the sizes of the source and destination extents /can/ differ in any
+-- dimension, texels in the source extent are scaled and filtered to the
+-- destination extent. Scaling occurs via the following operations:
+--
+-- -   For each destination texel, the integer coordinate of that texel is
+--     converted to an unnormalized texture coordinate, using the effective
+--     inverse of the equations described in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:
+--
+--     -   ubase = i + ½
+--
+--     -   vbase = j + ½
+--
+--     -   wbase = k + ½
+--
+-- -   These base coordinates are then offset by the first destination
+--     offset:
+--
+--     -   uoffset = ubase - xdst0
+--
+--     -   voffset = vbase - ydst0
+--
+--     -   woffset = wbase - zdst0
+--
+--     -   aoffset = a - @baseArrayCount@dst
+--
+-- -   The scale is determined from the source and destination regions, and
+--     applied to the offset coordinates:
+--
+--     -   scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)
+--
+--     -   scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)
+--
+--     -   scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)
+--
+--     -   uscaled = uoffset × scaleu
+--
+--     -   vscaled = voffset × scalev
+--
+--     -   wscaled = woffset × scalew
+--
+-- -   Finally the source offset is added to the scaled coordinates, to
+--     determine the final unnormalized coordinates used to sample from
+--     @srcImage@:
+--
+--     -   u = uscaled + xsrc0
+--
+--     -   v = vscaled + ysrc0
+--
+--     -   w = wscaled + zsrc0
+--
+--     -   q = @mipLevel@
+--
+--     -   a = aoffset + @baseArrayCount@src
+--
+-- These coordinates are used to sample from the source image, as described
+-- in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations chapter>,
+-- with the filter mode equal to that of @filter@, a mipmap mode of
+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and
+-- an address mode of
+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.
+-- Implementations /must/ clamp at the edge of the source image, and /may/
+-- additionally clamp to the edge of the source region.
+--
+-- Note
+--
+-- Due to allowable rounding errors in the generation of the source texture
+-- coordinates, it is not always possible to guarantee exactly which source
+-- texels will be sampled for a given blit. As rounding errors are
+-- implementation-dependent, the exact results of a blitting operation are
+-- also implementation-dependent.
+--
+-- Blits are done layer by layer starting with the @baseArrayLayer@ member
+-- of @srcSubresource@ for the source and @dstSubresource@ for the
+-- destination. @layerCount@ layers are blitted to the destination image.
+--
+-- When blitting 3D textures, slices in the destination region bounded by
+-- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the
+-- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the
+-- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then
+-- the value sampled from the source image is taken by doing linear
+-- filtering using the interpolated __z__ coordinate represented by __w__
+-- in the previous equations. If the @filter@ parameter is
+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from
+-- the source image is taken from the single nearest slice, with an
+-- implementation-dependent arithmetic rounding mode.
+--
+-- The following filtering and conversion rules apply:
+--
+-- -   Integer formats /can/ only be converted to other integer formats
+--     with the same signedness.
+--
+-- -   No format conversion is supported between depth\/stencil images. The
+--     formats /must/ match.
+--
+-- -   Format conversions on unorm, snorm, scaled and packed float formats
+--     of the copied aspect of the image are performed by first converting
+--     the pixels to float values.
+--
+-- -   For sRGB source formats, nonlinear RGB values are converted to
+--     linear representation prior to filtering.
+--
+-- -   After filtering, the float values are first clamped and then cast to
+--     the destination image format. In case of sRGB destination format,
+--     linear RGB values are converted to nonlinear representation before
+--     writing the pixel to the image.
+--
+-- Signed and unsigned integers are converted by first clamping to the
+-- representable range of the destination format, then casting the value.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBlitImage-commandBuffer-01834# 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, @srcImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdBlitImage-commandBuffer-01835# 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, @dstImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstImage@ /must/ not be an unprotected image
+--
+-- -   #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by
+--     each element of @pRegions@ /must/ be a region that is contained
+--     within @srcImage@
+--
+-- -   #VUID-vkCmdBlitImage-pRegions-00216# The destination region
+--     specified by each element of @pRegions@ /must/ be a region that is
+--     contained within @dstImage@
+--
+-- -   #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination
+--     regions, specified by the elements of @pRegions@, /must/ not overlap
+--     in memory with any texel that /may/ be sampled during the blit
+--     operation
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-01999# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @srcImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/
+--     specify the layout of the image subresources of @srcImage@ specified
+--     in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/
+--     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-02000# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/
+--     specify the layout of the image subresources of @dstImage@ specified
+--     in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/
+--     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or
+--     @dstImage@ was created with a signed integer
+--     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been
+--     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or
+--     @dstImage@ was created with an unsigned integer
+--     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been
+--     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or
+--     @dstImage@ was created with a depth\/stencil format, the other
+--     /must/ have exactly the same format
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with
+--     a depth\/stencil format, @filter@ /must/ be
+--     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been
+--     created with a @samples@ value of
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been
+--     created with a @samples@ value of
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdBlitImage-filter-02001# If @filter@ is
+--     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @srcImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
+--
+-- -   #VUID-vkCmdBlitImage-filter-02002# If @filter@ is
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @srcImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
+--
+-- -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', @srcImage@ /must/ be
+--     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
+--
+-- -   #VUID-vkCmdBlitImage-srcSubresource-01705# The
+--     @srcSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
+--
+-- -   #VUID-vkCmdBlitImage-dstSubresource-01706# The
+--     @dstSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
+--
+-- -   #VUID-vkCmdBlitImage-srcSubresource-01707# The
+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
+--
+-- -   #VUID-vkCmdBlitImage-dstSubresource-01708# The
+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@
+--     /must/ not have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or
+--     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',
+--     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@
+--     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and
+--     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/
+--     each be @1@
+--
+-- -   #VUID-vkCmdBlitImage-aspectMask-00241# For each element of
+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects
+--     present in @srcImage@
+--
+-- -   #VUID-vkCmdBlitImage-aspectMask-00242# For each element of
+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects
+--     present in @dstImage@
+--
+-- -   #VUID-vkCmdBlitImage-srcOffset-00243# For each element of
+--     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be
+--     greater than or equal to @0@ and less than or equal to the width of
+--     the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdBlitImage-srcOffset-00244# For each element of
+--     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be
+--     greater than or equal to @0@ and less than or equal to the height of
+--     the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdBlitImage-srcOffset-00246# For each element of
+--     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be
+--     greater than or equal to @0@ and less than or equal to the depth of
+--     the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdBlitImage-dstOffset-00248# For each element of
+--     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be
+--     greater than or equal to @0@ and less than or equal to the width of
+--     the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdBlitImage-dstOffset-00249# For each element of
+--     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be
+--     greater than or equal to @0@ and less than or equal to the height of
+--     the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdBlitImage-dstOffset-00251# For each element of
+--     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be
+--     greater than or equal to @0@ and less than or equal to the depth of
+--     the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z
+--     /must/ be @1@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a
+--     valid pointer to an array of @regionCount@ valid 'ImageBlit'
+--     structures
+--
+-- -   #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid
+--     'Vulkan.Core10.Enums.Filter.Filter' value
+--
+-- -   #VUID-vkCmdBlitImage-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-vkCmdBlitImage-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdBlitImage-videocoding# This command /must/ only be called
+--     outside of a video coding scope
+--
+-- -   #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/
+--     be greater than @0@
+--
+-- -   #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,
+--     @dstImage@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',
+-- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+cmdBlitImage :: forall io
+              . (MonadIO io)
+             => -- | @commandBuffer@ is the command buffer into which the command will be
+                -- recorded.
+                CommandBuffer
+             -> -- | @srcImage@ is the source image.
+                ("srcImage" ::: Image)
+             -> -- | @srcImageLayout@ is the layout of the source image subresources for the
+                -- blit.
+                ("srcImageLayout" ::: ImageLayout)
+             -> -- | @dstImage@ is the destination image.
+                ("dstImage" ::: Image)
+             -> -- | @dstImageLayout@ is the layout of the destination image subresources for
+                -- the blit.
+                ("dstImageLayout" ::: ImageLayout)
+             -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying
+                -- the regions to blit.
+                ("regions" ::: Vector ImageBlit)
+             -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter
+                -- to apply if the blits require scaling.
+                Filter
+             -> io ()
+cmdBlitImage commandBuffer
+               srcImage
+               srcImageLayout
+               dstImage
+               dstImageLayout
+               regions
+               filter' = liftIO . evalContT $ do
+  let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing
+  let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr
+  pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)
+  lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage'
+                                              (commandBufferHandle (commandBuffer))
+                                              (srcImage)
+                                              (srcImageLayout)
+                                              (dstImage)
+                                              (dstImageLayout)
+                                              ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+                                              (pPRegions)
+                                              (filter'))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdCopyBufferToImage
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()
+
+-- | vkCmdCopyBufferToImage - Copy data from a buffer into an image
+--
+-- = Description
+--
+-- Each source region specified by @pRegions@ is copied from the source
+-- buffer to the destination region of the destination image according to
+-- the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations>
+-- for each resource. If any of the specified regions in @srcBuffer@
+-- overlaps in memory with any of the specified regions in @dstImage@,
+-- values read from those overlapping regions are undefined. If any region
+-- accesses a depth aspect in @dstImage@ and the
+-- @VK_EXT_depth_range_unrestricted@ extension is not enabled, values
+-- copied from @srcBuffer@ outside of the range [0,1] will be be written as
+-- undefined values to the destination image.
+--
+-- Copy regions for the image /must/ be aligned to a multiple of the texel
+-- block extent in each dimension, except at the edges of the image, where
+-- region extents /must/ match the edge of the image.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07966# If @dstImage@ is
+--     non-sparse then the image or the specified /disjoint/ plane /must/
+--     be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07967# The
+--     @imageSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07968# The
+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
+--     each element of @pRegions@ , if @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07969# @dstImage@ /must/ not
+--     have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07970# The image
+--     region specified by each element of @pRegions@ /must/ be contained
+--     within the specified @imageSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07971# For each
+--     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
+--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the width of the specified @imageSubresource@
+--     of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07972# For each
+--     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
+--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the height of the specified @imageSubresource@
+--     of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07973# @dstImage@ /must/ have
+--     a sample count equal to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# 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, @srcBuffer@ /must/ not be a protected buffer
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# 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, @dstImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@
+--     is a protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstImage@ /must/ not be an unprotected image
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-07737# If the queue
+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which
+--     @commandBuffer@ was allocated from does not support
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the
+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-07738# The @imageOffset@
+--     and @imageExtent@ members of each element of @pRegions@ /must/
+--     respect the image transfer granularity requirements of
+--     @commandBuffer@’s command pool’s queue family, as described in
+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-07739# If the queue
+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which
+--     @commandBuffer@ was allocated from does not support
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each
+--     element of @pRegions@, the @aspectMask@ member of @imageSubresource@
+--     /must/ not be
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be
+--     large enough to contain all buffer locations that are accessed
+--     according to
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,
+--     for each element of @pRegions@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source
+--     regions, and the union of all destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/
+--     have been created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-01997# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have
+--     been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@
+--     /must/ specify the layout of the image subresources of @dstImage@
+--     specified in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@
+--     /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-07931# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted VK_EXT_depth_range_unrestricted>
+--     is not enabled, for each element of @pRegions@ whose
+--     @imageSubresource@ contains a depth aspect, the data in @srcBuffer@
+--     /must/ be in the range [0,1]
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07979# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
+--     @imageExtent.height@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageOffset-09104# For each element of
+--     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
+--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the depth of the specified @imageSubresource@
+--     of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07980# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07275# For each element of
+--     @pRegions@, @imageOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07276# For each element of
+--     @pRegions@, @imageOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00207# For each element of
+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
+--     not equal the width of the subresource specified by
+--     @srcSubresource@, @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00208# For each element of
+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
+--     not equal the height of the subresource specified by
+--     @srcSubresource@, @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-00209# For each element of
+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
+--     not equal the depth of the subresource specified by
+--     @srcSubresource@, @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-imageSubresource-09105# For each
+--     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify
+--     aspects present in @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07981# If @dstImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @imageSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07983# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
+--     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @imageSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-09106# For each element
+--     of @pRegions@, @bufferRowLength@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107# For each
+--     element of @pRegions@, @bufferImageHeight@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-09108# For each element
+--     of @pRegions@, @bufferRowLength@ divided by the
+--     <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 @dstImage@ /must/ be
+--     less than or equal to 231-1
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07975# If @dstImage@ does not
+--     have either a depth\/stencil format 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-07976# 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-dstImage-07978# If @dstImage@ has a
+--     depth\/stencil format, the @bufferOffset@ member of any element of
+--     @pRegions@ /must/ be a multiple of @4@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#
+--     @dstImageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/
+--     be a valid pointer to an array of @regionCount@ valid
+--     'BufferImageCopy' structures
+--
+-- -   #VUID-vkCmdCopyBufferToImage-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-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdCopyBufferToImage-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@
+--     /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,
+--     @dstImage@, and @srcBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+cmdCopyBufferToImage :: forall io
+                      . (MonadIO io)
+                     => -- | @commandBuffer@ is the command buffer into which the command will be
+                        -- recorded.
+                        CommandBuffer
+                     -> -- | @srcBuffer@ is the source buffer.
+                        ("srcBuffer" ::: Buffer)
+                     -> -- | @dstImage@ is the destination image.
+                        ("dstImage" ::: Image)
+                     -> -- | @dstImageLayout@ is the layout of the destination image subresources for
+                        -- the copy.
+                        ("dstImageLayout" ::: ImageLayout)
+                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures
+                        -- specifying the regions to copy.
+                        ("regions" ::: Vector BufferImageCopy)
+                     -> io ()
+cmdCopyBufferToImage commandBuffer
+                       srcBuffer
+                       dstImage
+                       dstImageLayout
+                       regions = liftIO . evalContT $ do
+  let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing
+  let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr
+  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)
+  lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (srcBuffer)
+                                                      (dstImage)
+                                                      (dstImageLayout)
+                                                      ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+                                                      (pPRegions))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdCopyImageToBuffer
+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()
+
+-- | vkCmdCopyImageToBuffer - Copy image data into a buffer
+--
+-- = Description
+--
+-- Each source region specified by @pRegions@ is copied from the source
+-- image to the destination region of the destination buffer according to
+-- the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations>
+-- for each resource. If any of the specified regions in @srcImage@
+-- overlaps in memory with any of the specified regions in @dstBuffer@,
+-- values read from those overlapping regions are undefined.
+--
+-- Copy regions for the image /must/ be aligned to a multiple of the texel
+-- block extent in each dimension, except at the edges of the image, where
+-- region extents /must/ match the edge of the image.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07966# If @srcImage@ is
+--     non-sparse then the image or the specified /disjoint/ plane /must/
+--     be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07967# The
+--     @imageSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07968# The
+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
+--     each element of @pRegions@ , if @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07969# @srcImage@ /must/ not
+--     have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07970# The image
+--     region specified by each element of @pRegions@ /must/ be contained
+--     within the specified @imageSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07971# For each
+--     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
+--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the width of the specified @imageSubresource@
+--     of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07972# For each
+--     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
+--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the height of the specified @imageSubresource@
+--     of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07973# @srcImage@ /must/ have
+--     a sample count equal to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# 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, @srcImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# 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, @dstBuffer@ /must/ not be a protected buffer
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@
+--     is a protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-07746# If the queue
+--     family used to create the 'Vulkan.Core10.Handles.CommandPool' which
+--     @commandBuffer@ was allocated from does not support
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
+--     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the
+--     @bufferOffset@ member of any element of @pRegions@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-07747# The @imageOffset@
+--     and @imageExtent@ members of each element of @pRegions@ /must/
+--     respect the image transfer granularity requirements of
+--     @commandBuffer@’s command pool’s queue family, as described in
+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be
+--     large enough to contain all buffer locations that are accessed
+--     according to
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,
+--     for each element of @pRegions@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source
+--     regions, and the union of all destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have
+--     been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @srcImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/
+--     have been created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@
+--     /must/ specify the layout of the image subresources of @srcImage@
+--     specified in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@
+--     /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07979# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
+--     @imageExtent.height@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-09104# For each element of
+--     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
+--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the depth of the specified @imageSubresource@
+--     of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07980# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07275# For each element of
+--     @pRegions@, @imageOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07276# For each element of
+--     @pRegions@, @imageOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00207# For each element of
+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
+--     not equal the width of the subresource specified by
+--     @srcSubresource@, @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00208# For each element of
+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
+--     not equal the height of the subresource specified by
+--     @srcSubresource@, @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00209# For each element of
+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
+--     not equal the depth of the subresource specified by
+--     @srcSubresource@, @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-09105# For each
+--     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify
+--     aspects present in @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07981# If @srcImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @imageSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07983# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
+--     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @imageSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106# For each element
+--     of @pRegions@, @bufferRowLength@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107# For each
+--     element of @pRegions@, @bufferImageHeight@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108# For each element
+--     of @pRegions@, @bufferRowLength@ divided by the
+--     <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-srcImage-07975# If @srcImage@ does not
+--     have either a depth\/stencil format 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-07976# 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-07978# If @srcImage@ has a
+--     depth\/stencil format, the @bufferOffset@ member of any element of
+--     @pRegions@ /must/ be a multiple of @4@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#
+--     @srcImageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/
+--     be a valid pointer to an array of @regionCount@ valid
+--     'BufferImageCopy' structures
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-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-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@
+--     /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,
+--     @dstBuffer@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+cmdCopyImageToBuffer :: forall io
+                      . (MonadIO io)
+                     => -- | @commandBuffer@ is the command buffer into which the command will be
+                        -- recorded.
+                        CommandBuffer
+                     -> -- | @srcImage@ is the source image.
+                        ("srcImage" ::: Image)
+                     -> -- | @srcImageLayout@ is the layout of the source image subresources for the
+                        -- copy.
+                        ("srcImageLayout" ::: ImageLayout)
+                     -> -- | @dstBuffer@ is the destination buffer.
+                        ("dstBuffer" ::: Buffer)
+                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures
+                        -- specifying the regions to copy.
+                        ("regions" ::: Vector BufferImageCopy)
+                     -> io ()
+cmdCopyImageToBuffer commandBuffer
+                       srcImage
+                       srcImageLayout
+                       dstBuffer
+                       regions = liftIO . evalContT $ do
+  let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing
+  let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr
+  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)
+  lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (srcImage)
+                                                      (srcImageLayout)
+                                                      (dstBuffer)
+                                                      ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+                                                      (pPRegions))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdUpdateBuffer
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()
+
+-- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory
+--
+-- = Description
+--
+-- @dataSize@ /must/ be less than or equal to 65536 bytes. For larger
+-- updates, applications /can/ use buffer to buffer
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers copies>.
+--
+-- Note
+--
+-- Buffer updates performed with 'cmdUpdateBuffer' first copy the data into
+-- command buffer memory when the command is recorded (which requires
+-- additional storage and may incur an additional allocation), and then
+-- copy the data from the command buffer into @dstBuffer@ when the command
+-- is executed on a device.
+--
+-- The additional cost of this functionality compared to
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>
+-- means it is only recommended for very small amounts of data, and is why
+-- it is limited to only 65536 bytes.
+--
+-- Applications /can/ work around this by issuing multiple
+-- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but
+-- it is strongly recommended that they /should/ not.
+--
+-- The source data is copied from the user pointer to the command buffer
+-- when the command is called.
+--
+-- 'cmdUpdateBuffer' is only allowed outside of a render pass. This command
+-- is treated as a “transfer” operation for the purposes of synchronization
+-- barriers. The
+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+-- /must/ be specified in @usage@ of
+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be
+-- compatible with 'cmdUpdateBuffer'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less
+--     than the size of @dstBuffer@
+--
+-- -   #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less
+--     than or equal to the size of @dstBuffer@ minus @dstOffset@
+--
+-- -   #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have
+--     been created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less
+--     than or equal to @65536@
+--
+-- -   #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is
+--     an unprotected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstBuffer@ /must/ not be a protected buffer
+--
+-- -   #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid
+--     pointer to an array of @dataSize@ bytes
+--
+-- -   #VUID-vkCmdUpdateBuffer-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-vkCmdUpdateBuffer-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdUpdateBuffer-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be
+--     greater than @0@
+--
+-- -   #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and
+--     @dstBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdUpdateBuffer :: forall io
+                 . (MonadIO io)
+                => -- | @commandBuffer@ is the command buffer into which the command will be
+                   -- recorded.
+                   CommandBuffer
+                -> -- | @dstBuffer@ is a handle to the buffer to be updated.
+                   ("dstBuffer" ::: Buffer)
+                -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and
+                   -- /must/ be a multiple of 4.
+                   ("dstOffset" ::: DeviceSize)
+                -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of
+                   -- 4.
+                   ("dataSize" ::: DeviceSize)
+                -> -- | @pData@ is a pointer to the source data for the buffer update, and
+                   -- /must/ be at least @dataSize@ bytes in size.
+                   ("data" ::: Ptr ())
+                -> io ()
+cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do
+  let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdUpdateBufferPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing
+  let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr
+  traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer'
+                                          (commandBufferHandle (commandBuffer))
+                                          (dstBuffer)
+                                          (dstOffset)
+                                          (dataSize)
+                                          (data'))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdFillBuffer
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()
+
+-- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value
+--
+-- = Description
+--
+-- 'cmdFillBuffer' is treated as a “transfer” operation for the purposes of
+-- synchronization barriers. The
+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+-- /must/ be specified in @usage@ of
+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be
+-- compatible with 'cmdFillBuffer'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less
+--     than the size of @dstBuffer@
+--
+-- -   #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater
+--     than @0@
+--
+-- -   #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than
+--     or equal to the size of @dstBuffer@ minus @dstOffset@
+--
+-- -   #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple
+--     of @4@
+--
+-- -   #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdFillBuffer-apiVersion-07894# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, the 'Vulkan.Core10.Handles.CommandPool'
+--     that @commandBuffer@ was allocated from /must/ support graphics or
+--     compute operations
+--
+-- -   #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an
+--     unprotected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstBuffer@ /must/ not be a protected buffer
+--
+-- -   #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdFillBuffer-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-vkCmdFillBuffer-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics or compute
+--     operations
+--
+-- -   #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdFillBuffer-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and
+--     @dstBuffer@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdFillBuffer :: forall io
+               . (MonadIO io)
+              => -- | @commandBuffer@ is the command buffer into which the command will be
+                 -- recorded.
+                 CommandBuffer
+              -> -- | @dstBuffer@ is the buffer to be filled.
+                 ("dstBuffer" ::: Buffer)
+              -> -- | @dstOffset@ is the byte offset into the buffer at which to start
+                 -- filling, and /must/ be a multiple of 4.
+                 ("dstOffset" ::: DeviceSize)
+              -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple
+                 -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from
+                 -- @offset@ to the end of the buffer. If
+                 -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size
+                 -- of the buffer is not a multiple of 4, then the nearest smaller multiple
+                 -- is used.
+                 DeviceSize
+              -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill
+                 -- @size@ bytes of data. The data word is written to memory according to
+                 -- the host endianness.
+                 ("data" ::: Word32)
+              -> io ()
+cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do
+  let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdFillBufferPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing
+  let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr
+  traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer'
+                                        (commandBufferHandle (commandBuffer))
+                                        (dstBuffer)
+                                        (dstOffset)
+                                        (size)
+                                        (data'))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdClearColorImage
+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()
+
+-- | vkCmdClearColorImage - Clear regions of a color image
+--
+-- = Description
+--
+-- Each specified range in @pRanges@ is cleared to the value specified by
+-- @pColor@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdClearColorImage-image-01993# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @image@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
+--
+-- -   #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any
+--     of the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>
+--
+-- -   #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/
+--     specify the layout of the image subresource ranges of @image@
+--     specified in @pRanges@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/
+--     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdClearColorImage-aspectMask-02498# The
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@
+--     members of the elements of the @pRanges@ array /must/ each only
+--     include
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-vkCmdClearColorImage-baseMipLevel-01470# The
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     members of the elements of the @pRanges@ array /must/ each be less
+--     than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
+--
+-- -   #VUID-vkCmdClearColorImage-pRanges-01692# For each
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
+--     @pRanges@, if the @levelCount@ member is not
+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then
+--     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the
+--     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when
+--     @image@ was created
+--
+-- -   #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@
+--     members of the elements of the @pRanges@ array /must/ each be less
+--     than the @arrayLayers@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
+--
+-- -   #VUID-vkCmdClearColorImage-pRanges-01693# For each
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
+--     @pRanges@, if the @layerCount@ member is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then
+--     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the
+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
+--     when @image@ was created
+--
+-- -   #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a
+--     compressed or depth\/stencil format
+--
+-- -   #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid
+--     pointer to a 'ClearColorValue' union
+--
+-- -   #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@
+--     is an unprotected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @image@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@
+--     is a protected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, /must/ not be an unprotected image
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a
+--     valid pointer to an array of @rangeCount@ valid
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures
+--
+-- -   #VUID-vkCmdClearColorImage-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-vkCmdClearColorImage-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdClearColorImage-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@
+--     /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,
+--     and @image@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'
+cmdClearColorImage :: forall io
+                    . (MonadIO io)
+                   => -- | @commandBuffer@ is the command buffer into which the command will be
+                      -- recorded.
+                      CommandBuffer
+                   -> -- | @image@ is the image to be cleared.
+                      Image
+                   -> -- | @imageLayout@ specifies the current layout of the image subresource
+                      -- ranges to be cleared, and /must/ be
+                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.
+                      ImageLayout
+                   -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the
+                      -- values that the image subresource ranges will be cleared to (see
+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>
+                      -- below).
+                      ClearColorValue
+                   -> -- | @pRanges@ is a pointer to an array of
+                      -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a
+                      -- range of mipmap levels, array layers, and aspects to be cleared, as
+                      -- described in
+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.
+                      ("ranges" ::: Vector ImageSubresourceRange)
+                   -> io ()
+cmdClearColorImage commandBuffer
+                     image
+                     imageLayout
+                     color
+                     ranges = liftIO . evalContT $ do
+  let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing
+  let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr
+  pColor <- ContT $ withCStruct (color)
+  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)
+  lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage'
+                                                    (commandBufferHandle (commandBuffer))
+                                                    (image)
+                                                    (imageLayout)
+                                                    pColor
+                                                    ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32))
+                                                    (pPRanges))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdClearDepthStencilImage
+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()
+
+-- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil
+-- image
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-image-01994# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @image@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@
+--     member of any element of @pRanges@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
+--     and @image@ was created with
+--     <VkImageStencilUsageCreateInfo.html separate stencil usage>,
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--     used to create @image@
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@
+--     member of any element of @pRanges@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
+--     and @image@ was not created with
+--     <VkImageStencilUsageCreateInfo.html separate stencil usage>,
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
+--     @image@
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@
+--     member of any element of @pRanges@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     /must/ have been included in the
+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create
+--     @image@
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@
+--     /must/ specify the layout of the image subresource ranges of @image@
+--     specified in @pRanges@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@
+--     /must/ be either of
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member
+--     of each element of the @pRanges@ array /must/ not include bits other
+--     than
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s
+--     format does not have a stencil component, then the
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member
+--     of each element of the @pRanges@ array /must/ not include the
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--     bit
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s
+--     format does not have a depth component, then the
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member
+--     of each element of the @pRanges@ array /must/ not include the
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@
+--     members of the elements of the @pRanges@ array /must/ each be less
+--     than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
+--     @pRanges@, if the @levelCount@ member is not
+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then
+--     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the
+--     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when
+--     @image@ was created
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@
+--     members of the elements of the @pRanges@ array /must/ each be less
+--     than the @arrayLayers@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
+--     @pRanges@, if the @layerCount@ member is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then
+--     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the
+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
+--     when @image@ was created
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a
+--     depth\/stencil format
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If
+--     @commandBuffer@ is an unprotected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @image@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If
+--     @commandBuffer@ is a protected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @image@ /must/ not be an unprotected image
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#
+--     @imageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#
+--     @pDepthStencil@ /must/ be a valid pointer to a valid
+--     'ClearDepthStencilValue' structure
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@
+--     /must/ be a valid pointer to an array of @rangeCount@ valid
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-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-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/
+--     only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#
+--     @rangeCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdClearDepthStencilImage-commonparent# Both of
+--     @commandBuffer@, and @image@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'
+cmdClearDepthStencilImage :: forall io
+                           . (MonadIO io)
+                          => -- | @commandBuffer@ is the command buffer into which the command will be
+                             -- recorded.
+                             CommandBuffer
+                          -> -- | @image@ is the image to be cleared.
+                             Image
+                          -> -- | @imageLayout@ specifies the current layout of the image subresource
+                             -- ranges to be cleared, and /must/ be
+                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.
+                             ImageLayout
+                          -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure
+                             -- containing the values that the depth and stencil image subresource
+                             -- ranges will be cleared to (see
+                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>
+                             -- below).
+                             ClearDepthStencilValue
+                          -> -- | @pRanges@ is a pointer to an array of
+                             -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a
+                             -- range of mipmap levels, array layers, and aspects to be cleared, as
+                             -- described in
+                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.
+                             ("ranges" ::: Vector ImageSubresourceRange)
+                          -> io ()
+cmdClearDepthStencilImage commandBuffer
+                            image
+                            imageLayout
+                            depthStencil
+                            ranges = liftIO . evalContT $ do
+  let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing
+  let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr
+  pDepthStencil <- ContT $ withCStruct (depthStencil)
+  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)
+  lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage'
+                                                           (commandBufferHandle (commandBuffer))
+                                                           (image)
+                                                           (imageLayout)
+                                                           pDepthStencil
+                                                           ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32))
+                                                           (pPRanges))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdClearAttachments
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()
+
+-- | vkCmdClearAttachments - Clear regions within bound framebuffer
+-- attachments
+--
+-- = Description
+--
+-- If the render pass has a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,
+-- clears follow the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>
+-- as if each clear region was a primitive which generates fragments. The
+-- clear color is applied to all pixels inside each fragment’s area
+-- regardless if the pixels lie outside of the clear region. Clears /may/
+-- have a different set of supported fragment areas than draws.
+--
+-- Unlike other
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,
+-- 'cmdClearAttachments' is not a transfer command. It performs its
+-- operations in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.
+-- For color attachments, the operations are executed as color attachment
+-- writes, by the
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
+-- stage. For depth\/stencil attachments, the operations are executed as
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil writes>
+-- by the
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
+-- and
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
+-- stages.
+--
+-- 'cmdClearAttachments' is not affected by the bound pipeline state.
+--
+-- Note
+--
+-- It is generally preferable to clear attachments by using the
+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load
+-- operation at the start of rendering, as it is more efficient on some
+-- implementations.
+--
+-- If any attachment’s @aspectMask@ to be cleared is not backed by an image
+-- view, the clear has no effect on that aspect.
+--
+-- If an attachment being cleared refers to an image view created with an
+-- @aspectMask@ equal to one 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', it
+-- is considered to be
+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' for
+-- purposes of this command, and /must/ be cleared with the
+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' aspect
+-- as specified by
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-plane-promotion image view creation>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdClearAttachments-aspectMask-07884# If the current render
+--     pass instance does not use dynamic rendering, and the @aspectMask@
+--     member of any element of @pAttachments@ contains
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',
+--     the current subpass instance’s depth-stencil attachment /must/ be
+--     either 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' or the
+--     attachment @format@ /must/ contain a depth component
+--
+-- -   #VUID-vkCmdClearAttachments-aspectMask-07885# If the current render
+--     pass instance does not use dynamic rendering, and the @aspectMask@
+--     member of any element of @pAttachments@ contains
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
+--     the current subpass instance’s depth-stencil attachment /must/ be
+--     either 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' or the
+--     attachment @format@ /must/ contain a stencil component
+--
+-- -   #VUID-vkCmdClearAttachments-aspectMask-07271# If the @aspectMask@
+--     member of any element of @pAttachments@ contains
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',
+--     the @colorAttachment@ /must/ be a valid color attachment index in
+--     the current render pass instance
+--
+-- -   #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each
+--     element of @pRects@ /must/ have an @extent.width@ greater than @0@
+--
+-- -   #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each
+--     element of @pRects@ /must/ have an @extent.height@ greater than @0@
+--
+-- -   #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region
+--     specified by each element of @pRects@ /must/ be contained within the
+--     render area of the current render pass instance
+--
+-- -   #VUID-vkCmdClearAttachments-pRects-06937# The layers specified by
+--     each element of @pRects@ /must/ be contained within every attachment
+--     that @pAttachments@ refers to, i.e. for each element of @pRects@,
+--     'ClearRect'::@baseArrayLayer@ + 'ClearRect'::@layerCount@ /must/ be
+--     less than or equal to the number of layers rendered to in the
+--     current render pass instance
+--
+-- -   #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@
+--     member of each element of @pRects@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@
+--     is an unprotected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, each attachment to be cleared /must/ not be a
+--     protected image
+--
+-- -   #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@
+--     is a protected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, each attachment to be cleared /must/ not be an
+--     unprotected image
+--
+-- -   #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass
+--     instance this is recorded in uses multiview, then @baseArrayLayer@
+--     /must/ be zero and @layerCount@ /must/ be one
+--
+-- -   #VUID-vkCmdClearAttachments-aspectMask-09298# If the subpass this is
+--     recorded in performs an external format resolve, the @aspectMask@
+--     member of any element of @pAttachments@ /must/ not include
+--     @VK_IMAGE_ASPECT_PLANE_i_BIT@ for any index /i/
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@
+--     /must/ be a valid pointer to an array of @attachmentCount@ valid
+--     'ClearAttachment' structures
+--
+-- -   #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a
+--     valid pointer to an array of @rectCount@ 'ClearRect' structures
+--
+-- -   #VUID-vkCmdClearAttachments-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-vkCmdClearAttachments-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdClearAttachments-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdClearAttachments-attachmentCount-arraylength#
+--     @attachmentCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@
+--     /must/ be greater than @0@
+--
+-- == 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_VERSION_1_0 VK_VERSION_1_0>,
+-- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'
+cmdClearAttachments :: forall io
+                     . (MonadIO io)
+                    => -- | @commandBuffer@ is the command buffer into which the command will be
+                       -- recorded.
+                       CommandBuffer
+                    -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures
+                       -- defining the attachments to clear and the clear values to use.
+                       ("attachments" ::: Vector ClearAttachment)
+                    -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining
+                       -- regions within each selected attachment to clear.
+                       ("rects" ::: Vector ClearRect)
+                    -> io ()
+cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do
+  let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing
+  let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr
+  pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)
+  pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)
+  lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments'
+                                                     (commandBufferHandle (commandBuffer))
+                                                     ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32))
+                                                     (pPAttachments)
+                                                     ((fromIntegral (Data.Vector.length $ (rects)) :: Word32))
+                                                     (pPRects))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdResolveImage
+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()
+
+-- | vkCmdResolveImage - Resolve regions of an image
+--
+-- = Description
+--
+-- During the resolve the samples corresponding to each pixel location in
+-- the source are converted to a single sample before being written to the
+-- destination. If the source formats are floating-point or normalized
+-- types, the sample values for each pixel are resolved in an
+-- implementation-dependent manner. If the source formats are integer
+-- types, a single sample’s value is selected for each pixel.
+--
+-- @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets
+-- in texels of the sub-regions of the source and destination image data.
+-- @extent@ is the size in texels of the source image to resolve in
+-- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a
+-- region that is contained within its corresponding image.
+--
+-- Resolves are done layer by layer starting with @baseArrayLayer@ member
+-- of @srcSubresource@ for the source and @dstSubresource@ for the
+-- destination. @layerCount@ layers are resolved to the destination image.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdResolveImage-commandBuffer-01837# 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, @srcImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdResolveImage-commandBuffer-01838# 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, @dstImage@ /must/ not be a protected image
+--
+-- -   #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, @dstImage@ /must/ not be an unprotected image
+--
+-- -   #VUID-vkCmdResolveImage-pRegions-00255# The union of all source
+--     regions, and the union of all destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a
+--     sample count equal to any valid sample count value other than
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a
+--     sample count equal to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@
+--     /must/ specify the layout of the image subresources of @srcImage@
+--     specified in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@
+--     /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@
+--     /must/ specify the layout of the image subresources of @dstImage@
+--     specified in @pRegions@ at the time this command is executed on a
+--     'Vulkan.Core10.Handles.Device'
+--
+-- -   #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@
+--     /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-02003# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@
+--     /must/ have been created with the same image format
+--
+-- -   #VUID-vkCmdResolveImage-srcSubresource-01709# The
+--     @srcSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
+--
+-- -   #VUID-vkCmdResolveImage-dstSubresource-01710# The
+--     @dstSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
+--
+-- -   #VUID-vkCmdResolveImage-srcSubresource-01711# The
+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
+--
+-- -   #VUID-vkCmdResolveImage-dstSubresource-01712# The
+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
+--     each element of @pRegions@ , if @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@
+--     /must/ not have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-04446# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
+--     of @pRegions@, @srcSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-04447# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @dstSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-vkCmdResolveImage-srcOffset-00269# For each element of
+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the width of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdResolveImage-srcOffset-00270# For each element of
+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the height of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdResolveImage-srcOffset-00272# For each element of
+--     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the depth of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/
+--     be @1@
+--
+-- -   #VUID-vkCmdResolveImage-dstOffset-00274# For each element of
+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the width of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdResolveImage-dstOffset-00275# For each element of
+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the height of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@
+--     /must/ be @1@
+--
+-- -   #VUID-vkCmdResolveImage-dstOffset-00277# For each element of
+--     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the depth of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/
+--     be @1@
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-06762# @srcImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-06763# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @srcImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-06764# @dstImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-06765# The
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@
+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     value
+--
+-- -   #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a
+--     valid pointer to an array of @regionCount@ valid 'ImageResolve'
+--     structures
+--
+-- -   #VUID-vkCmdResolveImage-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-vkCmdResolveImage-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdResolveImage-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdResolveImage-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@
+--     /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,
+--     @dstImage@, and @srcImage@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'
+cmdResolveImage :: forall io
+                 . (MonadIO io)
+                => -- | @commandBuffer@ is the command buffer into which the command will be
+                   -- recorded.
+                   CommandBuffer
+                -> -- | @srcImage@ is the source image.
+                   ("srcImage" ::: Image)
+                -> -- | @srcImageLayout@ is the layout of the source image subresources for the
+                   -- resolve.
+                   ("srcImageLayout" ::: ImageLayout)
+                -> -- | @dstImage@ is the destination image.
+                   ("dstImage" ::: Image)
+                -> -- | @dstImageLayout@ is the layout of the destination image subresources for
+                   -- the resolve.
+                   ("dstImageLayout" ::: ImageLayout)
+                -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures
+                   -- specifying the regions to resolve.
+                   ("regions" ::: Vector ImageResolve)
+                -> io ()
+cmdResolveImage commandBuffer
+                  srcImage
+                  srcImageLayout
+                  dstImage
+                  dstImageLayout
+                  regions = liftIO . evalContT $ do
+  let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing
+  let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr
+  pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)
+  lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage'
+                                                 (commandBufferHandle (commandBuffer))
+                                                 (srcImage)
+                                                 (srcImageLayout)
+                                                 (dstImage)
+                                                 (dstImageLayout)
+                                                 ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+                                                 (pPRegions))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetEvent
+  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()
+
+-- | vkCmdSetEvent - Set an event object to signaled state
+--
+-- = Description
+--
+-- 'cmdSetEvent' behaves identically to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',
+-- except that it does not define an access scope, and /must/ only be used
+-- with 'cmdWaitEvents', not
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04090# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04091# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04092# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04093# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04094# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04095# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-04096# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-07318# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-03937# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @stageMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-07949# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in
+--     @stageMask@ /must/ be supported by the capabilities of the queue
+--     family specified by the @queueFamilyIndex@ member of the
+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was
+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that
+--     @commandBuffer@ was allocated from, as specified in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
+--
+-- -   #VUID-vkCmdSetEvent-commandBuffer-01152# The current device mask of
+--     @commandBuffer@ /must/ include exactly one physical device
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid
+--     'Vulkan.Core10.Handles.Event' handle
+--
+-- -   #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a
+--     valid combination of
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdSetEvent-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-vkCmdSetEvent-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and
+--     @event@ /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                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
+cmdSetEvent :: forall io
+             . (MonadIO io)
+            => -- | @commandBuffer@ is the command buffer into which the command is
+               -- recorded.
+               CommandBuffer
+            -> -- | @event@ is the event that will be signaled.
+               Event
+            -> -- | @stageMask@ specifies the
+               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>
+               -- used to determine the first
+               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.
+               ("stageMask" ::: PipelineStageFlags)
+            -> io ()
+cmdSetEvent commandBuffer event stageMask = liftIO $ do
+  let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetEventPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing
+  let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr
+  traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent'
+                                      (commandBufferHandle (commandBuffer))
+                                      (event)
+                                      (stageMask))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdResetEvent
+  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()
+
+-- | vkCmdResetEvent - Reset an event object to non-signaled state
+--
+-- = Description
+--
+-- 'cmdResetEvent' behaves identically to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04090# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04091# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04092# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04093# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04094# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04095# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-04096# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-07318# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-03937# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @stageMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-07949# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @stageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included
+--     in @stageMask@ /must/ be supported by the capabilities of the queue
+--     family specified by the @queueFamilyIndex@ member of the
+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was
+--     used to create the 'Vulkan.Core10.Handles.CommandPool' that
+--     @commandBuffer@ was allocated from, as specified in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
+--
+-- -   #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution
+--     dependency between 'cmdResetEvent' and the execution of any
+--     'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter
+--
+-- -   #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution
+--     dependency between 'cmdResetEvent' and the execution of any
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'
+--     that includes @event@ in its @pEvents@ parameter
+--
+-- -   #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current
+--     device mask /must/ include exactly one physical device
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid
+--     'Vulkan.Core10.Handles.Event' handle
+--
+-- -   #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a
+--     valid combination of
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdResetEvent-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-vkCmdResetEvent-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called
+--     outside of a render pass instance
+--
+-- -   #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and
+--     @event@ /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                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
+cmdResetEvent :: forall io
+               . (MonadIO io)
+              => -- | @commandBuffer@ is the command buffer into which the command is
+                 -- recorded.
+                 CommandBuffer
+              -> -- | @event@ is the event that will be unsignaled.
+                 Event
+              -> -- | @stageMask@ is a bitmask of
+                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                 -- specifying the
+                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>
+                 -- used to determine when the @event@ is unsignaled.
+                 ("stageMask" ::: PipelineStageFlags)
+              -> io ()
+cmdResetEvent commandBuffer event stageMask = liftIO $ do
+  let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdResetEventPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing
+  let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr
+  traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent'
+                                        (commandBufferHandle (commandBuffer))
+                                        (event)
+                                        (stageMask))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdWaitEventsUnsafe
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()
+
+foreign import ccall
+  "dynamic" mkVkCmdWaitEventsSafe
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()
+
+-- | cmdWaitEvents with selectable safeness
+cmdWaitEventsSafeOrUnsafe :: forall io
+                           . (MonadIO io)
+                          => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())
+                          -> -- | @commandBuffer@ is the command buffer into which the command is
+                             -- recorded.
+                             CommandBuffer
+                          -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.
+                             ("events" ::: Vector Event)
+                          -> -- | @srcStageMask@ is a bitmask of
+                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                             -- specifying the
+                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.
+                             ("srcStageMask" ::: PipelineStageFlags)
+                          -> -- | @dstStageMask@ is a bitmask of
+                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                             -- specifying the
+                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.
+                             ("dstStageMask" ::: PipelineStageFlags)
+                          -> -- | @pMemoryBarriers@ is a pointer to an array of
+                             -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
+                             ("memoryBarriers" ::: Vector MemoryBarrier)
+                          -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
+                             -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
+                             ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))
+                          -> -- | @pImageMemoryBarriers@ is a pointer to an array of
+                             -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
+                             ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
+                          -> io ()
+cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer
+                                              events
+                                              srcStageMask
+                                              dstStageMask
+                                              memoryBarriers
+                                              bufferMemoryBarriers
+                                              imageMemoryBarriers = liftIO . evalContT $ do
+  let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing
+  let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr
+  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)
+  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)
+  pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers)
+  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)
+  lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents'
+                                               (commandBufferHandle (commandBuffer))
+                                               ((fromIntegral (Data.Vector.length $ (events)) :: Word32))
+                                               (pPEvents)
+                                               (srcStageMask)
+                                               (dstStageMask)
+                                               ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))
+                                               (pPMemoryBarriers)
+                                               ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))
+                                               (forgetExtensions (pPBufferMemoryBarriers))
+                                               ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))
+                                               (forgetExtensions (pPImageMemoryBarriers)))
+  pure $ ()
+
+-- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory
+--
+-- = Description
+--
+-- 'cmdWaitEvents' is largely similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',
+-- but /can/ only wait on signal operations defined by 'cmdSetEvent'. As
+-- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines
+-- the first access scope for each event signal operation in addition to
+-- its own access scopes.
+--
+-- Note
+--
+-- Since 'cmdSetEvent' does not have any dependency information beyond a
+-- stage mask, implementations do not have the same opportunity to perform
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>
+-- or
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>
+-- in advance as they do with
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2' and
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.
+--
+-- When 'cmdWaitEvents' is submitted to a queue, it defines a memory
+-- dependency between prior event signal operations on the same queue or
+-- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to
+-- wait on event signal operations occurring on other queues.
+--
+-- The first synchronization scope only includes event signal operations
+-- that operate on members of @pEvents@, and the operations that
+-- happened-before the event signal operations. Event signal operations
+-- performed by 'cmdSetEvent' that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
+-- are included in the first synchronization scope, if the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>
+-- pipeline stage in their @stageMask@ parameter is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>
+-- than or equal to the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>
+-- pipeline stage in @srcStageMask@. Event signal operations performed by
+-- 'Vulkan.Core10.Event.setEvent' are only included in the first
+-- synchronization scope if
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is
+-- included in @srcStageMask@.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands that occur later in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+-- The second synchronization scope is limited to operations on the
+-- pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
+-- specified by @dstStageMask@.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- is limited to accesses in the pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>
+-- specified by @srcStageMask@. Within that, the first access scope only
+-- includes the first access scopes defined by elements of the
+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
+-- arrays, which each define a set of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
+-- If no memory barriers are specified, then the first access scope
+-- includes no accesses.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- is limited to accesses in the pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
+-- specified by @dstStageMask@. Within that, the second access scope only
+-- includes the second access scopes defined by elements of the
+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
+-- arrays, which each define a set of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
+-- If no memory barriers are specified, then the second access scope
+-- includes no accesses.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04090# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04091# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04092# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04093# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04094# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04095# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-07318# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-03937# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @srcStageMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-07949# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdWaitEvents-srcAccessMask-06257# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>
+--     feature is not enabled and a memory barrier @srcAccessMask@ includes
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',
+--     @srcStageMask@ /must/ not include any of the
+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04090# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04091# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04092# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04093# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04094# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04095# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-07318# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-03937# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @dstStageMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-07949# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdWaitEvents-dstAccessMask-06257# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>
+--     feature is not enabled and a memory barrier @dstAccessMask@ includes
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',
+--     @dstStageMask@ /must/ not include any of the
+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@
+--     member of each element of @pMemoryBarriers@ /must/ only include
+--     access flags that are supported by one or more of the pipeline
+--     stages in @srcStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@
+--     member of each element of @pMemoryBarriers@ /must/ only include
+--     access flags that are supported by one or more of the pipeline
+--     stages in @dstStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element
+--     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @srcQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @srcAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @srcStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element
+--     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @dstQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @dstAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @dstStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of
+--     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @srcQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @srcAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @srcStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of
+--     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @dstQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @dstAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @dstStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage
+--     included in @srcStageMask@ /must/ be supported by the capabilities
+--     of the queue family specified by the @queueFamilyIndex@ member of
+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
+--     @commandBuffer@ was allocated from, as specified in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage
+--     included in @dstStageMask@ /must/ be supported by the capabilities
+--     of the queue family specified by the @queueFamilyIndex@ member of
+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
+--     @commandBuffer@ was allocated from, as specified in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be
+--     the bitwise OR of the @stageMask@ parameter used in previous calls
+--     to 'cmdSetEvent' with any of the elements of @pEvents@ and
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
+--     if any of the elements of @pEvents@ was set using
+--     'Vulkan.Core10.Event.setEvent'
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-07308# If 'cmdWaitEvents' is
+--     being called inside a render pass instance, @srcStageMask@ /must/
+--     not include
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
+--
+-- -   #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The
+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any
+--     element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/
+--     be equal
+--
+-- -   #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current
+--     device mask /must/ include exactly one physical device
+--
+-- -   #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/
+--     not have been signaled by
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid
+--     pointer to an array of @eventCount@ valid
+--     'Vulkan.Core10.Handles.Event' handles
+--
+-- -   #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/
+--     be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/
+--     be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If
+--     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid
+--     pointer to an array of @memoryBarrierCount@ valid
+--     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures
+--
+-- -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If
+--     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@
+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@
+--     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures
+--
+-- -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If
+--     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/
+--     be a valid pointer to an array of @imageMemoryBarrierCount@ valid
+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures
+--
+-- -   #VUID-vkCmdWaitEvents-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-vkCmdWaitEvents-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be
+--     greater than @0@
+--
+-- -   #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the
+--     elements of @pEvents@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',
+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
+cmdWaitEvents :: forall io
+               . (MonadIO io)
+              => -- | @commandBuffer@ is the command buffer into which the command is
+                 -- recorded.
+                 CommandBuffer
+              -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.
+                 ("events" ::: Vector Event)
+              -> -- | @srcStageMask@ is a bitmask of
+                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                 -- specifying the
+                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.
+                 ("srcStageMask" ::: PipelineStageFlags)
+              -> -- | @dstStageMask@ is a bitmask of
+                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                 -- specifying the
+                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.
+                 ("dstStageMask" ::: PipelineStageFlags)
+              -> -- | @pMemoryBarriers@ is a pointer to an array of
+                 -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
+                 ("memoryBarriers" ::: Vector MemoryBarrier)
+              -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
+                 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
+                 ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))
+              -> -- | @pImageMemoryBarriers@ is a pointer to an array of
+                 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
+                 ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
+              -> io ()
+cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe
+
+-- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call
+cmdWaitEventsSafe :: forall io
+                   . (MonadIO io)
+                  => -- | @commandBuffer@ is the command buffer into which the command is
+                     -- recorded.
+                     CommandBuffer
+                  -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.
+                     ("events" ::: Vector Event)
+                  -> -- | @srcStageMask@ is a bitmask of
+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                     -- specifying the
+                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.
+                     ("srcStageMask" ::: PipelineStageFlags)
+                  -> -- | @dstStageMask@ is a bitmask of
+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                     -- specifying the
+                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.
+                     ("dstStageMask" ::: PipelineStageFlags)
+                  -> -- | @pMemoryBarriers@ is a pointer to an array of
+                     -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
+                     ("memoryBarriers" ::: Vector MemoryBarrier)
+                  -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
+                     -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
+                     ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))
+                  -> -- | @pImageMemoryBarriers@ is a pointer to an array of
+                     -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
+                     ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
+                  -> io ()
+cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdPipelineBarrier
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()
+
+-- | vkCmdPipelineBarrier - Insert a memory dependency
+--
+-- = Description
+--
+-- 'cmdPipelineBarrier' operates almost identically to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',
+-- except that the scopes and barriers are defined as direct parameters
+-- rather than being defined by an
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo'.
+--
+-- When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory
+-- dependency between commands that were submitted to the same queue before
+-- it, and those submitted to the same queue after it.
+--
+-- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the
+-- first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+-- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the
+-- first synchronization scope includes only commands that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
+-- within the same subpass. In either case, the first synchronization scope
+-- is limited to operations on the pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>
+-- specified by @srcStageMask@.
+--
+-- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the
+-- second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands that occur later in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+-- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the
+-- second synchronization scope includes only commands that occur later in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>
+-- within the same subpass. In either case, the second synchronization
+-- scope is limited to operations on the pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
+-- specified by @dstStageMask@.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- is limited to accesses in the pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>
+-- specified by @srcStageMask@. Within that, the first access scope only
+-- includes the first access scopes defined by elements of the
+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
+-- arrays, which each define a set of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
+-- If no memory barriers are specified, then the first access scope
+-- includes no accesses.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+-- is limited to accesses in the pipeline stages determined by the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>
+-- specified by @dstStageMask@. Within that, the second access scope only
+-- includes the second access scopes defined by elements of the
+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@
+-- arrays, which each define a set of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.
+-- If no memory barriers are specified, then the second access scope
+-- includes no accesses.
+--
+-- If @dependencyFlags@ includes
+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then
+-- any dependency between
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>
+-- pipeline stages is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>
+-- - otherwise it is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-07318# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @srcStageMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-07949# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @srcStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcAccessMask-06257# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>
+--     feature is not enabled and a memory barrier @srcAccessMask@ includes
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',
+--     @srcStageMask@ /must/ not include any of the
+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-07318# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @dstStageMask@ /must/ not be @0@
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-07949# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @dstStageMask@ /must/ not contain
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstAccessMask-06257# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>
+--     feature is not enabled and a memory barrier @dstAccessMask@ includes
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',
+--     @dstStageMask@ /must/ not include any of the
+--     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@
+--     member of each element of @pMemoryBarriers@ /must/ only include
+--     access flags that are supported by one or more of the pipeline
+--     stages in @srcStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@
+--     member of each element of @pMemoryBarriers@ /must/ only include
+--     access flags that are supported by one or more of the pipeline
+--     stages in @dstStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any
+--     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @srcQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @srcAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @srcStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any
+--     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @dstQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @dstAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @dstStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any
+--     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @srcQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @srcAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @srcStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any
+--     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and
+--     @dstQueueFamilyIndex@ members are equal, or if its
+--     @dstQueueFamilyIndex@ is the queue family index that was used to
+--     create the command pool that @commandBuffer@ was allocated from,
+--     then its @dstAccessMask@ member /must/ only contain access flags
+--     that are supported by one or more of the pipeline stages in
+--     @dstStageMask@, as specified in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-07889# If 'cmdPipelineBarrier' is
+--     called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, the render pass /must/
+--     have been created with at least one subpass dependency that
+--     expresses a dependency from the current subpass to itself, does not
+--     include
+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' if
+--     this command does not, does not include
+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'
+--     if this command does not, and has
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>
+--     that are all supersets of the scopes defined in this command
+--
+-- -   #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If
+--     'cmdPipelineBarrier' is called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, it /must/ not include any
+--     buffer memory barriers
+--
+-- -   #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is
+--     called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, the @image@ member of any
+--     image memory barrier included in this command /must/ be an
+--     attachment used in the current subpass both as an input attachment,
+--     and as either a color, color resolve, or depth\/stencil attachment
+--
+-- -   #VUID-vkCmdPipelineBarrier-image-09373# If 'cmdPipelineBarrier' is
+--     called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of
+--     any image memory barrier is a color resolve attachment, the
+--     corresponding color attachment /must/ be
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
+--
+-- -   #VUID-vkCmdPipelineBarrier-image-09374# If 'cmdPipelineBarrier' is
+--     called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of
+--     any image memory barrier is a color resolve attachment, it /must/
+--     have been created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value
+--
+-- -   #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'
+--     is called within a render pass instance, the @oldLayout@ and
+--     @newLayout@ members of any image memory barrier included in this
+--     command /must/ be equal
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If
+--     'cmdPipelineBarrier' is called within a render pass instance, the
+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any
+--     memory barrier included in this command /must/ be equal
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-07890# If 'cmdPipelineBarrier' is
+--     called within a render pass instance, and the source stage masks of
+--     any memory barriers include
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,
+--     destination stage masks of all memory barriers /must/ only include
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>
+--
+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-07891# If
+--     'cmdPipelineBarrier' is called within a render pass instance, and
+--     and the source stage masks of any memory barriers include
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,
+--     then @dependencyFlags@ /must/ include
+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-07892# If 'cmdPipelineBarrier' is
+--     called within a render pass instance, the source and destination
+--     stage masks of any memory barriers /must/ only include graphics
+--     pipeline stages
+--
+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If
+--     'cmdPipelineBarrier' is called outside of a render pass instance,
+--     the dependency flags /must/ not include
+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-07893# If 'cmdPipelineBarrier' is
+--     called inside a render pass instance, and there is more than one
+--     view in the current subpass, dependency flags /must/ include
+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'
+--
+-- -   #VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718# If
+--     'cmdPipelineBarrier' is called within a render pass instance and
+--     none of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageColorReadAccess shaderTileImageColorReadAccess>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess>,
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess>
+--     features are enabled, the render pass /must/ not have been started
+--     with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdPipelineBarrier-None-08719# If 'cmdPipelineBarrier' is
+--     called within a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     it /must/ adhere to the restrictions in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage Explicit Render Pass Tile Image Access Synchronization>
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage
+--     included in @srcStageMask@ /must/ be supported by the capabilities
+--     of the queue family specified by the @queueFamilyIndex@ member of
+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
+--     @commandBuffer@ was allocated from, as specified in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage
+--     included in @dstStageMask@ /must/ be supported by the capabilities
+--     of the queue family specified by the @queueFamilyIndex@ member of
+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that
+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that
+--     @commandBuffer@ was allocated from, as specified in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#
+--     @dependencyFlags@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values
+--
+-- -   #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If
+--     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid
+--     pointer to an array of @memoryBarrierCount@ valid
+--     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures
+--
+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If
+--     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@
+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@
+--     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures
+--
+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If
+--     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/
+--     be a valid pointer to an array of @imageMemoryBarrierCount@ valid
+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures
+--
+-- -   #VUID-vkCmdPipelineBarrier-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-vkCmdPipelineBarrier-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, compute, decode,
+--     or encode operations
+--
+-- == 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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Synchronization                                                                                                                        |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',
+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'
+cmdPipelineBarrier :: forall io
+                    . (MonadIO io)
+                   => -- | @commandBuffer@ is the command buffer into which the command is
+                      -- recorded.
+                      CommandBuffer
+                   -> -- | @srcStageMask@ is a bitmask of
+                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                      -- specifying the
+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.
+                      ("srcStageMask" ::: PipelineStageFlags)
+                   -> -- | @dstStageMask@ is a bitmask of
+                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+                      -- specifying the
+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.
+                      ("dstStageMask" ::: PipelineStageFlags)
+                   -> -- | @dependencyFlags@ is a bitmask of
+                      -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying
+                      -- how execution and memory dependencies are formed.
+                      DependencyFlags
+                   -> -- | @pMemoryBarriers@ is a pointer to an array of
+                      -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.
+                      ("memoryBarriers" ::: Vector MemoryBarrier)
+                   -> -- | @pBufferMemoryBarriers@ is a pointer to an array of
+                      -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.
+                      ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))
+                   -> -- | @pImageMemoryBarriers@ is a pointer to an array of
+                      -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.
+                      ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))
+                   -> io ()
+cmdPipelineBarrier commandBuffer
+                     srcStageMask
+                     dstStageMask
+                     dependencyFlags
+                     memoryBarriers
+                     bufferMemoryBarriers
+                     imageMemoryBarriers = liftIO . evalContT $ do
+  let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing
+  let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr
+  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)
+  pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers)
+  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)
+  lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier'
+                                                    (commandBufferHandle (commandBuffer))
+                                                    (srcStageMask)
+                                                    (dstStageMask)
+                                                    (dependencyFlags)
+                                                    ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))
+                                                    (pPMemoryBarriers)
+                                                    ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))
+                                                    (forgetExtensions (pPBufferMemoryBarriers))
+                                                    ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))
+                                                    (forgetExtensions (pPImageMemoryBarriers)))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBeginQuery
+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()
+
+-- | vkCmdBeginQuery - Begin a query
+--
+-- = Description
+--
+-- If the @queryType@ of the pool is
+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@
+-- contains
+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an
+-- implementation /must/ return a result that matches the actual number of
+-- samples passed. This is described in more detail in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.
+--
+-- Calling 'cmdBeginQuery' is equivalent to calling
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'
+-- with the @index@ parameter set to zero.
+--
+-- After beginning a query, that query is considered /active/ within the
+-- command buffer it was called in until that same query is ended. Queries
+-- active in a primary command buffer when secondary command buffers are
+-- executed are considered active for those secondary command buffers.
+--
+-- Furthermore, if the query is started within a video coding scope, the
+-- following command buffer states are initialized for the query type:
+--
+-- -   #queries-operation-active-query-index# The /active_query_index/ is
+--     set to the value specified by @query@.
+--
+-- -   #queries-operation-last-activatable-query-index# The /last
+--     activatable query index/ is also set to the value specified by
+--     @query@.
+--
+-- Each
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-coding video coding operation>
+-- stores a result to the query corresponding to the current active query
+-- index, followed by incrementing the active query index. If the active
+-- query index gets incremented past the last activatable query index,
+-- issuing any further video coding operations results in undefined
+-- behavior.
+--
+-- Note
+--
+-- In practice, this means that currently no more than a single video
+-- coding operation /must/ be issued between a begin and end query pair.
+--
+-- This command defines an execution dependency between other query
+-- commands that reference the same query.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @query@ that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @query@ that occur later in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+--
+-- The operation of this command happens after the first scope and happens
+-- before the second scope.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command
+--     /must/ be /unavailable/
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to
+--     create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to
+--     create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'
+--     or
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-06741# The @queryType@ used to
+--     create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'
+--     or
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to
+--     create @queryPool@ /must/ not be
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-00800# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise>
+--     feature is not enabled, or the @queryType@ used to create
+--     @queryPool@ was not
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/
+--     not contain
+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'
+--
+-- -   #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the
+--     number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and
+--     any of the @pipelineStatistics@ indicate graphics operations, the
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and
+--     any of the @pipelineStatistics@ indicate compute operations, the
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support compute operations
+--
+-- -   #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/
+--     not be a protected command buffer
+--
+-- -   #VUID-vkCmdBeginQuery-query-00808# If called within a render pass
+--     instance, the sum of @query@ and the number of bits set in the
+--     current subpass’s view mask /must/ be less than or equal to the
+--     number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-07126# If the @queryType@ used to
+--     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ have been created with a queue family index
+--     that supports
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-result-status-only result status queries>,
+--     as indicated by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>::@queryResultStatusSupport@
+--
+-- -   #VUID-vkCmdBeginQuery-None-07127# If there is a bound video session,
+--     then there /must/ be no
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>
+--     queries
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-07128# If the @queryType@ used to
+--     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ and
+--     there is a bound video session, then @queryPool@ /must/ have been
+--     created with a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one
+--     specified in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@
+--     the bound video session was created with
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-04862# If the @queryType@ used to
+--     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,
+--     then the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@
+--     was allocated from /must/ support
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-07129# If the @queryType@ used to
+--     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,
+--     then there /must/ be a bound video session
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-07130# If the @queryType@ used to
+--     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@ and
+--     there is a bound video session, then @queryPool@ /must/ have been
+--     created with a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one
+--     specified in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@
+--     the bound video session was created with
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-07131# If the @queryType@ used to
+--     create @queryPool@ was not @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ or
+--     @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@, then there /must/ be no
+--     bound video session
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been
+--     created with a @queryType@ that differs from that of any queries
+--     that are
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
+--     within @commandBuffer@
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'
+--     then
+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@
+--     /must/ be supported
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-06687# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to
+--     create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'
+--     then
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>
+--     /must/ be enabled
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-07289# If @queryPool@ was created
+--     with a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     then the
+--     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@queueFamilyIndex@
+--     @queryPool@ was created with /must/ equal the queue family index of
+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created
+--     with a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>
+--     /must/ have been held before
+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on
+--     @commandBuffer@
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created
+--     with a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
+--     one of the counters used to create @queryPool@ was
+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',
+--     the query begin /must/ be the first recorded command in
+--     @commandBuffer@
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created
+--     with a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
+--     one of the counters used to create @queryPool@ was
+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',
+--     the begin command /must/ not be recorded within a render pass
+--     instance
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created
+--     with a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
+--     another query pool with a @queryType@
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has
+--     been used within @commandBuffer@, its parent primary command buffer
+--     or secondary command buffer recorded within the same parent primary
+--     command buffer as @commandBuffer@, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a
+--     @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     this command /must/ not be recorded in a command buffer that, either
+--     directly or through secondary command buffers, also contains a
+--     'cmdResetQueryPool' command affecting the same query
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid
+--     combination of
+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'
+--     values
+--
+-- -   #VUID-vkCmdBeginQuery-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-vkCmdBeginQuery-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and
+--     @queryPool@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',
+-- 'Vulkan.Core10.Handles.QueryPool',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',
+-- 'cmdEndQuery',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'
+cmdBeginQuery :: forall io
+               . (MonadIO io)
+              => -- | @commandBuffer@ is the command buffer into which this command will be
+                 -- recorded.
+                 CommandBuffer
+              -> -- | @queryPool@ is the query pool that will manage the results of the query.
+                 QueryPool
+              -> -- | @query@ is the query index within the query pool that will contain the
+                 -- results.
+                 ("query" ::: Word32)
+              -> -- | @flags@ is a bitmask of
+                 -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'
+                 -- specifying constraints on the types of queries that /can/ be performed.
+                 QueryControlFlags
+              -> io ()
+cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do
+  let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdBeginQueryPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing
+  let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr
+  traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery'
+                                        (commandBufferHandle (commandBuffer))
+                                        (queryPool)
+                                        (query)
+                                        (flags))
+  pure $ ()
+
+-- | This function will call the supplied action between calls to
+-- 'cmdBeginQuery' and 'cmdEndQuery'
+--
+-- Note that 'cmdEndQuery' is *not* called if an exception is thrown by the
+-- inner action.
+cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r
+cmdUseQuery commandBuffer queryPool query flags a =
+  (cmdBeginQuery commandBuffer
+                   queryPool
+                   query
+                   flags) *> a <* (cmdEndQuery commandBuffer queryPool query)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdEndQuery
+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()
+
+-- | vkCmdEndQuery - Ends a query
+--
+-- = Description
+--
+-- The command completes the query in @queryPool@ identified by @query@,
+-- and marks it as available.
+--
+-- This command defines an execution dependency between other query
+-- commands that reference the same query.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @query@ that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes only the operation of this command.
+--
+-- Calling 'cmdEndQuery' is equivalent to calling
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with
+-- the @index@ parameter set to zero.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command
+--     /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
+--
+-- -   #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the
+--     number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not
+--     be a protected command buffer
+--
+-- -   #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a
+--     render pass instance, the sum of @query@ and the number of bits set
+--     in the current subpass’s view mask /must/ be less than or equal to
+--     the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with
+--     a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
+--     one or more of the counters used to create @queryPool@ was
+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',
+--     the 'cmdEndQuery' /must/ be the last recorded command in
+--     @commandBuffer@
+--
+-- -   #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with
+--     a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and
+--     one or more of the counters used to create @queryPool@ was
+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',
+--     the 'cmdEndQuery' /must/ not be recorded within a render pass
+--     instance
+--
+-- -   #VUID-vkCmdEndQuery-None-07007# If called within a subpass of a
+--     render pass instance, the corresponding 'cmdBeginQuery'* command
+--     /must/ have been called previously within the same subpass
+--
+-- -   #VUID-vkCmdEndQuery-None-07008# If called outside of a render pass
+--     instance, the corresponding 'cmdBeginQuery'* command /must/ have
+--     been called outside of a render pass instance
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdEndQuery-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-vkCmdEndQuery-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
+--
+-- -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and
+--     @queryPool@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Handles.QueryPool', 'cmdBeginQuery',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'
+cmdEndQuery :: forall io
+             . (MonadIO io)
+            => -- | @commandBuffer@ is the command buffer into which this command will be
+               -- recorded.
+               CommandBuffer
+            -> -- | @queryPool@ is the query pool that is managing the results of the query.
+               QueryPool
+            -> -- | @query@ is the query index within the query pool where the result is
+               -- stored.
+               ("query" ::: Word32)
+            -> io ()
+cmdEndQuery commandBuffer queryPool query = liftIO $ do
+  let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdEndQueryPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing
+  let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr
+  traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery'
+                                      (commandBufferHandle (commandBuffer))
+                                      (queryPool)
+                                      (query))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdResetQueryPool
+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdResetQueryPool - Reset queries in a query pool
+--
+-- = Description
+--
+-- When executed on a queue, this command sets the status of query indices
+-- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.
+--
+-- This command defines an execution dependency between other query
+-- commands that reference the same query.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @firstQuery@ and @queryCount@ that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @firstQuery@ and @queryCount@ that occur later in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+--
+-- The operation of this command happens after the first scope and happens
+-- before the second scope.
+--
+-- If the @queryType@ used to create @queryPool@ was
+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this
+-- command sets the status of query indices [@firstQuery@, @firstQuery@ +
+-- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as
+-- indicated by a call to
+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.
+--
+-- Note
+--
+-- Because 'cmdResetQueryPool' resets all the passes of the indicated
+-- queries, applications must not record a 'cmdResetQueryPool' command for
+-- a @queryPool@ created with
+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a
+-- command buffer that needs to be submitted multiple times as indicated by
+-- a call to
+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.
+-- Otherwise applications will never be able to complete the recorded
+-- queries.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be
+--     less than the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@
+--     and @queryCount@ /must/ be less than or equal to the number of
+--     queries in @queryPool@
+--
+-- -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the
+--     command /must/ not be active
+--
+-- -   #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was
+--     created with
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     this command /must/ not be recorded in a command buffer that, either
+--     directly or through secondary command buffers, also contains begin
+--     commands for a query from the set of queries [@firstQuery@,
+--     @firstQuery@ + @queryCount@ - 1]
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdResetQueryPool-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-vkCmdResetQueryPool-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, compute, decode, encode, or
+--     optical flow operations
+--
+-- -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdResetQueryPool-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and
+--     @queryPool@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'
+cmdResetQueryPool :: forall io
+                   . (MonadIO io)
+                  => -- | @commandBuffer@ is the command buffer into which this command will be
+                     -- recorded.
+                     CommandBuffer
+                  -> -- | @queryPool@ is the handle of the query pool managing the queries being
+                     -- reset.
+                     QueryPool
+                  -> -- | @firstQuery@ is the initial query index to reset.
+                     ("firstQuery" ::: Word32)
+                  -> -- | @queryCount@ is the number of queries to reset.
+                     ("queryCount" ::: Word32)
+                  -> io ()
+cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do
+  let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing
+  let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr
+  traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool'
+                                            (commandBufferHandle (commandBuffer))
+                                            (queryPool)
+                                            (firstQuery)
+                                            (queryCount))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdWriteTimestamp
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()
+
+-- | vkCmdWriteTimestamp - Write a device timestamp into a query object
+--
+-- = Description
+--
+-- When 'cmdWriteTimestamp' is submitted to a queue, it defines an
+-- execution dependency on commands that were submitted before it, and
+-- writes a timestamp to a query pool.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+-- The synchronization scope is limited to operations on the pipeline stage
+-- specified by @pipelineStage@.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes only the timestamp write operation.
+--
+-- Note
+--
+-- Implementations may write the timestamp at any stage that is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically later>
+-- than @stage@.
+--
+-- Any timestamp write that
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
+-- another timestamp write in the same submission /must/ not have a lower
+-- value unless its value overflows the maximum supported integer bit width
+-- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends
+-- to timestamp writes across all submissions on the same logical device:
+-- any timestamp write that
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
+-- another /must/ not have a lower value unless its value overflows the
+-- maximum supported integer bit width of the query. Timestamps written by
+-- this command /must/ be in the
+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'
+-- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp
+-- value /must/ wrap back to zero.
+--
+-- Note
+--
+-- Comparisons between timestamps should be done between timestamps where
+-- they are guaranteed to not decrease. For example, subtracting an older
+-- timestamp from a newer one to determine the execution time of a sequence
+-- of commands is only a reliable measurement if the two timestamp writes
+-- were performed in the same submission, or if the writes were performed
+-- on the same logical device and @VK_EXT_calibrated_timestamps@ is
+-- enabled.
+--
+-- If 'cmdWriteTimestamp' is called while executing a render pass instance
+-- that has multiview enabled, the timestamp uses N consecutive query
+-- indices in the query pool (starting at @query@) where N is the number of
+-- bits set in the view mask of the subpass the command is executed in. The
+-- resulting query values are determined by an implementation-dependent
+-- choice of one of the following behaviors:
+--
+-- -   The first query is a timestamp value and (if more than one bit is
+--     set in the view mask) zero is written to the remaining queries. If
+--     two timestamps are written in the same subpass, the sum of the
+--     execution time of all views between those commands is the difference
+--     between the first query written by each command.
+--
+-- -   All N queries are timestamp values. If two timestamps are written in
+--     the same subpass, the sum of the execution time of all views between
+--     those commands is the sum of the difference between corresponding
+--     queries written by each command. The difference between
+--     corresponding queries /may/ be the execution time of a single view.
+--
+-- In either case, the application /can/ sum the differences between all N
+-- queries to determine the total execution time.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@
+--     /must/ be a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>
+--     for the queue family that was used to create the command pool that
+--     @commandBuffer@ was allocated from
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   #VUID-vkCmdWriteTimestamp-shadingRateImage-07314# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     are enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- -   #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'
+--
+-- -   #VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943# If neither the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+--     extension or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
+--     are enabled, @pipelineStage@ /must/ not be
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
+--
+-- -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have
+--     been created with a @queryType@ of
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
+--
+-- -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command
+--     pool’s queue family /must/ support a non-zero @timestampValidBits@
+--
+-- -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than
+--     the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the
+--     command /must/ be /unavailable/
+--
+-- -   #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is
+--     called within a render pass instance, the sum of @query@ and the
+--     number of bits set in the current subpass’s view mask /must/ be less
+--     than or equal to the number of queries in @queryPool@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@
+--     /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
+--     value
+--
+-- -   #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdWriteTimestamp-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-vkCmdWriteTimestamp-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, compute, decode,
+--     encode, or optical flow operations
+--
+-- -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and
+--     @queryPool@ /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                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',
+-- 'Vulkan.Core10.Handles.QueryPool'
+cmdWriteTimestamp :: forall io
+                   . (MonadIO io)
+                  => -- | @commandBuffer@ is the command buffer into which the command will be
+                     -- recorded.
+                     CommandBuffer
+                  -> -- | @pipelineStage@ is a
+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,
+                     -- specifying a stage of the pipeline.
+                     PipelineStageFlagBits
+                  -> -- | @queryPool@ is the query pool that will manage the timestamp.
+                     QueryPool
+                  -> -- | @query@ is the query within the query pool that will contain the
+                     -- timestamp.
+                     ("query" ::: Word32)
+                  -> io ()
+cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do
+  let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdWriteTimestampPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing
+  let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr
+  traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp'
+                                            (commandBufferHandle (commandBuffer))
+                                            (pipelineStage)
+                                            (queryPool)
+                                            (query))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdCopyQueryPoolResults
+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()
+
+-- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool
+-- to a buffer object
+--
+-- = Description
+--
+-- Any results written for a query are written according to
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.
+--
+-- Results for any query in @queryPool@ identified by @firstQuery@ and
+-- @queryCount@ that is available are copied to @dstBuffer@.
+--
+-- If
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
+-- is set, results for all queries in @queryPool@ identified by
+-- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an
+-- extra availability value written directly after the results of each
+-- query and interpreted as an unsigned integer. A value of zero indicates
+-- that the results are not yet available, otherwise the query is complete
+-- and results are available.
+--
+-- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries
+-- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to
+-- @dstBuffer@, along with an extra status value written directly after the
+-- results of each query and interpreted as a signed integer. A value of
+-- zero indicates that the results are not yet available. Positive values
+-- indicate that the operations within the query completed successfully,
+-- and the query results are valid. Negative values indicate that the
+-- operations within the query completed unsuccessfully.
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>
+-- defines specific meaning for values returned here, though
+-- implementations are free to return other values.
+--
+-- Results for any available query written by this command are final and
+-- represent the final result of the query. If
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is
+-- set, then for any query that is unavailable, an intermediate result
+-- between zero and the final result value is written for that query.
+-- Otherwise, any result written by this command is undefined.
+--
+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,
+-- results and availability or status values for all queries are written as
+-- an array of 64-bit values. If the @queryPool@ was created with
+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+-- results for each query are written as an array of the type indicated by
+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@
+-- for the counter being queried. Otherwise, results and availability or
+-- status values are written as an array of 32-bit values. If an unsigned
+-- integer query’s value overflows the result type, the value /may/ either
+-- wrap or saturate. If a signed integer query’s value overflows the result
+-- type, the value is undefined. If a floating point query’s value is not
+-- representable as the result type, the value is undefined.
+--
+-- This command defines an execution dependency between other query
+-- commands that reference the same query.
+--
+-- The first
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @query@ that occur earlier in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+-- If @flags@ does not include
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',
+-- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.
+--
+-- The second
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+-- includes all commands which reference the queries in @queryPool@
+-- indicated by @query@ that occur later in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
+--
+-- The operation of this command happens after the first scope and happens
+-- before the second scope.
+--
+-- 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and
+-- its writes to buffer memory /must/ be synchronized using
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'
+-- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'
+-- before using the results.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/
+--     be less than the size of @dstBuffer@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@
+--     /must/ be less than the number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of
+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the
+--     number of queries in @queryPool@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-00822# If
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not
+--     set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of
+--     @4@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-00823# If
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set
+--     in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/
+--     have enough storage, from @dstOffset@, to contain the result of each
+--     query, as described
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/
+--     have been created with
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     usage flag
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/
+--     not contain
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     @flags@ /must/ not contain
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',
+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT',
+--     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+--     the @queryPool@ /must/ have been submitted once for each pass as
+--     retrieved via a call to
+--     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-02734#
+--     'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@
+--     used to create @queryPool@ was
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@
+--     used to create @queryPool@ was
+--     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include
+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes
+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-None-07429# All queries used by the
+--     command /must/ not be active
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-None-08752# All queries used by the
+--     command /must/ have been made /available/ by prior executed commands
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@
+--     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a
+--     valid combination of
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-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-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only
+--     be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of
+--     @commandBuffer@, @dstBuffer@, and @queryPool@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Handles.QueryPool',
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'
+cmdCopyQueryPoolResults :: forall io
+                         . (MonadIO io)
+                        => -- | @commandBuffer@ is the command buffer into which this command will be
+                           -- recorded.
+                           CommandBuffer
+                        -> -- | @queryPool@ is the query pool managing the queries containing the
+                           -- desired results.
+                           QueryPool
+                        -> -- | @firstQuery@ is the initial query index.
+                           ("firstQuery" ::: Word32)
+                        -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@
+                           -- together define a range of queries.
+                           ("queryCount" ::: Word32)
+                        -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive
+                           -- the results of the copy command.
+                           ("dstBuffer" ::: Buffer)
+                        -> -- | @dstOffset@ is an offset into @dstBuffer@.
+                           ("dstOffset" ::: DeviceSize)
+                        -> -- | @stride@ is the stride in bytes between results for individual queries
+                           -- within @dstBuffer@. The required size of the backing memory for
+                           -- @dstBuffer@ is determined as described above for
+                           -- 'Vulkan.Core10.Query.getQueryPoolResults'.
+                           ("stride" ::: DeviceSize)
+                        -> -- | @flags@ is a bitmask of
+                           -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying
+                           -- how and when results are returned.
+                           QueryResultFlags
+                        -> io ()
+cmdCopyQueryPoolResults commandBuffer
+                          queryPool
+                          firstQuery
+                          queryCount
+                          dstBuffer
+                          dstOffset
+                          stride
+                          flags = liftIO $ do
+  let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing
+  let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr
+  traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults'
+                                                  (commandBufferHandle (commandBuffer))
+                                                  (queryPool)
+                                                  (firstQuery)
+                                                  (queryCount)
+                                                  (dstBuffer)
+                                                  (dstOffset)
+                                                  (stride)
+                                                  (flags))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdPushConstants
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()
+
+-- | vkCmdPushConstants - Update the values of push constants
+--
+-- = Description
+--
+-- When a command buffer begins recording, all push constant values are
+-- undefined. Reads of undefined push constant values by the executing
+-- shader return undefined values.
+--
+-- Push constant values /can/ be updated incrementally, causing shader
+-- stages in @stageFlags@ to read the new data from @pValues@ for push
+-- constants modified by this command, while still reading the previous
+-- data for push constants not modified by this command. When a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline command>
+-- is issued, the bound pipeline’s layout /must/ be compatible with the
+-- layouts used to set the values of all push constants in the pipeline
+-- layout’s push constant ranges, as described in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.
+-- Binding a pipeline with a layout that is not compatible with the push
+-- constant layout does not disturb the push constant values.
+--
+-- Note
+--
+-- As @stageFlags@ needs to include all flags the relevant push constant
+-- ranges were created with, any flags that are not supported by the queue
+-- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate
+-- @commandBuffer@ was created on are ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdPushConstants-offset-01795# For each byte in the range
+--     specified by @offset@ and @size@ and for each shader stage in
+--     @stageFlags@, there /must/ be a push constant range in @layout@ that
+--     includes that byte and that stage
+--
+-- -   #VUID-vkCmdPushConstants-offset-01796# For each byte in the range
+--     specified by @offset@ and @size@ and for each push constant range
+--     that overlaps that byte, @stageFlags@ /must/ include all stages in
+--     that push constant range’s
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@
+--
+-- -   #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple
+--     of @4@
+--
+-- -   #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of
+--     @4@
+--
+-- -   #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
+--
+-- -   #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or
+--     equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
+--     minus @offset@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.PipelineLayout' handle
+--
+-- -   #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/
+--     be a valid combination of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
+--
+-- -   #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@
+--     /must/ not be @0@
+--
+-- -   #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a
+--     valid pointer to an array of @size@ bytes
+--
+-- -   #VUID-vkCmdPushConstants-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-vkCmdPushConstants-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdPushConstants-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater
+--     than @0@
+--
+-- -   #VUID-vkCmdPushConstants-commonparent# Both of @commandBuffer@, and
+--     @layout@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Handles.PipelineLayout',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'
+cmdPushConstants :: forall io
+                  . (MonadIO io)
+                 => -- | @commandBuffer@ is the command buffer in which the push constant update
+                    -- will be recorded.
+                    CommandBuffer
+                 -> -- | @layout@ is the pipeline layout used to program the push constant
+                    -- updates.
+                    PipelineLayout
+                 -> -- | @stageFlags@ is a bitmask of
+                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying
+                    -- the shader stages that will use the push constants in the updated range.
+                    ShaderStageFlags
+                 -> -- | @offset@ is the start offset of the push constant range to update, in
+                    -- units of bytes.
+                    ("offset" ::: Word32)
+                 -> -- | @size@ is the size of the push constant range to update, in units of
+                    -- bytes.
+                    ("size" ::: Word32)
+                 -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new
+                    -- push constant values.
+                    ("values" ::: Ptr ())
+                 -> io ()
+cmdPushConstants commandBuffer
+                   layout
+                   stageFlags
+                   offset
+                   size
+                   values = liftIO $ do
+  let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdPushConstantsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing
+  let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr
+  traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants'
+                                           (commandBufferHandle (commandBuffer))
+                                           (layout)
+                                           (stageFlags)
+                                           (offset)
+                                           (size)
+                                           (values))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBeginRenderPass
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()
+
+-- | vkCmdBeginRenderPass - Begin a new render pass
+--
+-- = Description
+--
+-- After beginning a render pass instance, the command buffer is ready to
+-- record the commands for the first subpass of that render pass.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',
+--     or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',
+--     or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',
+--     or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the
+--     @stencilInitialLayout@ or @stencilFinalLayout@ member of the
+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'
+--     structures or the @stencilLayout@ member of the
+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',
+--     or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the
+--     @initialLayout@ member of any of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when
+--     creating the render pass specified in the @renderPass@ member of
+--     @pRenderPassBegin@ is not
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each
+--     such @initialLayout@ /must/ be equal to the current layout of the
+--     corresponding attachment image subresource of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@
+--
+-- -   #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@
+--     members of any element of the @pDependencies@ member of
+--     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create
+--     @renderPass@ /must/ be supported by the capabilities of the queue
+--     family identified by the @queueFamilyIndex@ member of the
+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the
+--     command pool which @commandBuffer@ was allocated from
+--
+-- -   #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@
+--     members of any element of the @pDependencies@ member of
+--     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create
+--     @renderPass@ /must/ be supported by the capabilities of the queue
+--     family identified by the @queueFamilyIndex@ member of the
+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the
+--     command pool which @commandBuffer@ was allocated from
+--
+-- -   #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in
+--     @framebuffer@ that is used by @renderPass@ and is bound to memory
+--     locations that are also bound to another attachment used by
+--     @renderPass@, and if at least one of those uses causes either
+--     attachment to be written to, both attachments /must/ have had the
+--     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'
+--     set
+--
+-- -   #VUID-vkCmdBeginRenderPass-framebuffer-09045# If any attachments
+--     specified in @framebuffer@ are used by @renderPass@ and are bound to
+--     overlapping memory locations, there /must/ be only one that is used
+--     as a color attachment, depth\/stencil, or resolve attachment in any
+--     subpass
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-07000# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value including either the
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--     and either the
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
+--     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'
+--     usage bits
+--
+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-07001# If any of the
+--     @initialLayout@ or @finalLayout@ member of the
+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'
+--     structures specified when creating the render pass specified in the
+--     @renderPass@ member of @pRenderPassBegin@ is
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     then the corresponding attachment image view of the framebuffer
+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/
+--     have been created with a @usage@ value the
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--     usage bit
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#
+--     @pRenderPassBegin@ /must/ be a valid pointer to a valid
+--     'RenderPassBeginInfo' structure
+--
+-- -   #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be
+--     a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value
+--
+-- -   #VUID-vkCmdBeginRenderPass-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-vkCmdBeginRenderPass-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdBeginRenderPass-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a
+--     primary 'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == 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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',
+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
+cmdBeginRenderPass :: forall a io
+                    . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)
+                   => -- | @commandBuffer@ is the command buffer in which to record the command.
+                      CommandBuffer
+                   -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure
+                      -- specifying the render pass to begin an instance of, and the framebuffer
+                      -- the instance uses.
+                      (RenderPassBeginInfo a)
+                   -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
+                      -- value specifying how the commands in the first subpass will be provided.
+                      SubpassContents
+                   -> io ()
+cmdBeginRenderPass commandBuffer
+                     renderPassBegin
+                     contents = liftIO . evalContT $ do
+  let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing
+  let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr
+  pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)
+  lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass'
+                                                    (commandBufferHandle (commandBuffer))
+                                                    (forgetExtensions pRenderPassBegin)
+                                                    (contents))
+  pure $ ()
+
+-- | This function will call the supplied action between calls to
+-- 'cmdBeginRenderPass' and 'cmdEndRenderPass'
+--
+-- Note that 'cmdEndRenderPass' is *not* called if an exception is thrown
+-- by the inner action.
+cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r
+cmdUseRenderPass commandBuffer pRenderPassBegin contents a =
+  (cmdBeginRenderPass commandBuffer
+                        pRenderPassBegin
+                        contents) *> a <* (cmdEndRenderPass commandBuffer)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdNextSubpass
+  :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()
+
+-- | vkCmdNextSubpass - Transition to the next subpass of a render pass
+--
+-- = Description
+--
+-- The subpass index for a render pass begins at zero when
+-- 'cmdBeginRenderPass' is recorded, and increments each time
+-- 'cmdNextSubpass' is recorded.
+--
+-- After transitioning to the next subpass, the application /can/ record
+-- the commands for that subpass.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/
+--     be less than the number of subpasses in the render pass minus one
+--
+-- -   #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be
+--     recorded when transform feedback is active
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a
+--     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value
+--
+-- -   #VUID-vkCmdNextSubpass-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-vkCmdNextSubpass-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdNextSubpass-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a
+--     primary 'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == 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                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
+cmdNextSubpass :: forall io
+                . (MonadIO io)
+               => -- | @commandBuffer@ is the command buffer in which to record the command.
+                  CommandBuffer
+               -> -- | @contents@ specifies how the commands in the next subpass will be
+                  -- provided, in the same fashion as the corresponding parameter of
+                  -- 'cmdBeginRenderPass'.
+                  SubpassContents
+               -> io ()
+cmdNextSubpass commandBuffer contents = liftIO $ do
+  let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdNextSubpassPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing
+  let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr
+  traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass'
+                                         (commandBufferHandle (commandBuffer))
+                                         (contents))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdEndRenderPass
+  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()
+
+-- | vkCmdEndRenderPass - End the current render pass
+--
+-- = Description
+--
+-- Ending a render pass instance performs any multisample resolve
+-- operations on the final subpass.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdEndRenderPass-None-00910# The current subpass index
+--     /must/ be equal to the number of subpasses in the render pass minus
+--     one
+--
+-- -   #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be
+--     recorded when transform feedback is active
+--
+-- -   #VUID-vkCmdEndRenderPass-None-06170# The current render pass
+--     instance /must/ not have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called
+--     within a subpass of the render pass, the corresponding
+--     'cmdEndQuery'* /must/ have been called subsequently within the same
+--     subpass
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdEndRenderPass-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-vkCmdEndRenderPass-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdEndRenderPass-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a
+--     primary 'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == 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                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdEndRenderPass :: forall io
+                  . (MonadIO io)
+                 => -- | @commandBuffer@ is the command buffer in which to end the current render
+                    -- pass instance.
+                    CommandBuffer
+                 -> io ()
+cmdEndRenderPass commandBuffer = liftIO $ do
+  let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdEndRenderPassPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing
+  let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr
+  traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass'
+                                           (commandBufferHandle (commandBuffer)))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdExecuteCommands
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()
+
+-- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary
+-- command buffer
+--
+-- = Description
+--
+-- If any element of @pCommandBuffers@ was not recorded with the
+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
+-- flag, and it was recorded into any other primary command buffer which is
+-- currently in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,
+-- that primary command buffer becomes
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+-- feature is enabled it is valid usage for 'cmdExecuteCommands' to also be
+-- recorded to a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of
+--     @pCommandBuffers@ /must/ have been allocated with a @level@ of
+--     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of
+--     @pCommandBuffers@ /must/ be in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of
+--     @pCommandBuffers@ was not recorded with the
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
+--     flag, it /must/ not be in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of
+--     @pCommandBuffers@ was not recorded with the
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
+--     flag, it /must/ not have already been recorded to @commandBuffer@
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of
+--     @pCommandBuffers@ was not recorded with the
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
+--     flag, it /must/ not appear more than once in @pCommandBuffers@
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of
+--     @pCommandBuffers@ /must/ have been allocated from a
+--     'Vulkan.Core10.Handles.CommandPool' that was created for the same
+--     queue family as the 'Vulkan.Core10.Handles.CommandPool' from which
+--     @commandBuffer@ was allocated
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If
+--     'cmdExecuteCommands' is being called within a render pass instance,
+--     each element of @pCommandBuffers@ /must/ have been recorded with the
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If
+--     'cmdExecuteCommands' is being called within a render pass instance,
+--     and any element of @pCommandBuffers@ was recorded with
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@
+--     not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that
+--     'Vulkan.Core10.Handles.Framebuffer' /must/ match the
+--     'Vulkan.Core10.Handles.Framebuffer' used in the current render pass
+--     instance
+--
+-- -   #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'cmdBeginRenderPass', its @contents@ parameter /must/ have been set
+--     to
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'
+--     , or
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@
+--     /must/ have been recorded with
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@
+--     set to the index of the subpass which the given command buffer will
+--     be executed in
+--
+-- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'cmdBeginRenderPass', the render passes specified in the
+--     @pBeginInfo->pInheritanceInfo->renderPass@ members of the
+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to
+--     begin recording each element of @pCommandBuffers@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>
+--     with the current render pass
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is
+--     being called within a render pass instance that included
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of
+--     @pCommandBuffers@ /must/ have been recorded with
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is
+--     being called within a render pass instance that included
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of
+--     @pCommandBuffers@ /must/ have been recorded with
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@
+--     identical to
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is
+--     being called within a render pass instance that included
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of
+--     @pCommandBuffers@ /must/ have been recorded with
+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@
+--     identical to 'RenderPassBeginInfo'::@renderArea@
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If
+--     'cmdExecuteCommands' is not being called within a render pass
+--     instance, each element of @pCommandBuffers@ /must/ not have been
+--     recorded with the
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>
+--     feature is not enabled, @commandBuffer@ /must/ not have any queries
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@
+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,
+--     then each element of @pCommandBuffers@ /must/ have been recorded
+--     with
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@
+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@
+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,
+--     then each element of @pCommandBuffers@ /must/ have been recorded
+--     with
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@
+--     having all bits set that are set for the query
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@
+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'
+--     query
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,
+--     then each element of @pCommandBuffers@ /must/ have been recorded
+--     with
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@
+--     having all bits set that are set in the
+--     'Vulkan.Core10.Handles.QueryPool' the query uses
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of
+--     @pCommandBuffers@ /must/ not begin any query types that are
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
+--     in @commandBuffer@
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-07594# @commandBuffer@
+--     /must/ not have any queries other than
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@
+--     is a protected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, each element of @pCommandBuffers@ /must/ be a
+--     protected command buffer
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@
+--     is an unprotected command buffer and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, each element of @pCommandBuffers@ /must/ be an
+--     unprotected command buffer
+--
+-- -   #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be
+--     recorded when transform feedback is active
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-06533# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     and any recorded command in @commandBuffer@ in the current subpass
+--     will write to an image subresource as an attachment, commands
+--     recorded in elements of @pCommandBuffers@ /must/ not read from the
+--     memory backing that image subresource in any other way
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-06534# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     and any recorded command in @commandBuffer@ in the current subpass
+--     will read from an image subresource used as an attachment in any way
+--     other than as an attachment, commands recorded in elements of
+--     @pCommandBuffers@ /must/ not write to that image subresource as an
+--     attachment
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     and any recorded command in a given element of @pCommandBuffers@
+--     will write to an image subresource as an attachment, commands
+--     recorded in elements of @pCommandBuffers@ at a higher index /must/
+--     not read from the memory backing that image subresource in any other
+--     way
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     and any recorded command in a given element of @pCommandBuffers@
+--     will read from an image subresource used as an attachment in any way
+--     other than as an attachment, commands recorded in elements of
+--     @pCommandBuffers@ at a higher index /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If
+--     @pCommandBuffers@ contains any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,
+--     there /must/ be no action or synchronization commands between that
+--     render pass instance and any render pass instance that resumes it
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If
+--     @pCommandBuffers@ contains any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,
+--     there /must/ be no render pass instances between that render pass
+--     instance and any render pass instance that resumes it
+--
+-- -   #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>
+--     limit is not supported, and any element of @pCommandBuffers@
+--     contains any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,
+--     where a graphics pipeline has been bound, any pipelines bound in the
+--     render pass instance that resumes it, or any subsequent render pass
+--     instances that resume from that one and so on, /must/ use the same
+--     sample locations
+--
+-- -   #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     its
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@
+--     parameter /must/ have included
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'
+--
+-- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the render passes specified in the
+--     @pBeginInfo->pInheritanceInfo->renderPass@ members of the
+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to
+--     begin recording each element of @pCommandBuffers@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the @flags@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     excluding
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'
+--
+-- -   #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the @colorAttachmentCount@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     if the @imageView@ member of an element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding
+--     element of the @pColorAttachmentFormats@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the format used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-imageView-07606# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     if the @imageView@ member of an element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding
+--     element of the @pColorAttachmentFormats@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     if the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
+--     @depthAttachmentFormat@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the format used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     if the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
+--     @stencilAttachmentFormat@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the format used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06774# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
+--     @depthAttachmentFormat@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If
+--     'cmdExecuteCommands' is being called within a render pass instance
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
+--     @stencilAttachmentFormat@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'
+--     is being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the @viewMask@ member of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
+--     a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, if the @imageView@ member of an element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding
+--     element of the @pColorAttachmentSamples@ member of the
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the sample count used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
+--     a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, if the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
+--     @depthStencilAttachmentSamples@ member of the
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the sample count used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes
+--     a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, if the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the
+--     @depthStencilAttachmentSamples@ member of the
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure included in the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@
+--     used to begin recording each element of @pCommandBuffers@ /must/ be
+--     equal to the sample count used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
+--     include a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, if the @imageView@ member of an element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
+--     /must/ be equal to the sample count used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
+--     include a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, if the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
+--     /must/ be equal to the sample count used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
+--     include a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, if the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     parameter to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
+--     /must/ be equal to the sample count used to create that image view
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-09299# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     with any color attachment using a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' used to
+--     create each element of @pCommandBuffers@ /must/ include a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--     structure with a @externalFormat@ matching that used to create the
+--     resolve attachment in the render pass
+--
+-- -   #VUID-vkCmdExecuteCommands-pNext-09300# If 'cmdExecuteCommands' is
+--     being called within a render pass instance begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     with any color attachment using a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and the @pNext@ chain of
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not
+--     include a
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     structure, the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@
+--     /must/ be
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-09375# @commandBuffer@
+--     /must/ not be a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>
+--     unless the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--     feature is enabled
+--
+-- -   #VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--     feature is enabled, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary command buffer nesting level>
+--     of each element of @pCommandBuffers@ /must/ be less than
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCommandBufferNestingLevel maxCommandBufferNestingLevel>
+--
+-- -   #VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBufferRendering nestedCommandBufferRendering>
+--     feature is not enabled, and @commandBuffer@ is a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>,
+--     @commandBuffer@ /must/ not have been recorded with
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'
+--
+-- -   #VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBufferSimultaneousUse nestedCommandBufferSimultaneousUse>
+--     feature is not enabled, and @commandBuffer@ is a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>,
+--     each element of @pCommandBuffers@ /must/ not have been recorded with
+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#
+--     @pCommandBuffers@ /must/ be a valid pointer to an array of
+--     @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'
+--     handles
+--
+-- -   #VUID-vkCmdExecuteCommands-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-vkCmdExecuteCommands-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdExecuteCommands-videocoding# This command /must/ only be
+--     called outside of a video coding scope
+--
+-- -   #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#
+--     @commandBufferCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,
+--     and the elements of @pCommandBuffers@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Indirection                                                                                                                            |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdExecuteCommands :: forall io
+                    . (MonadIO io)
+                   => -- | @commandBuffer@ is a handle to a primary command buffer that the
+                      -- secondary command buffers are executed in.
+                      CommandBuffer
+                   -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@
+                      -- secondary command buffer handles, which are recorded to execute in the
+                      -- primary command buffer in the order they are listed in the array.
+                      ("commandBuffers" ::: Vector CommandBuffer)
+                   -> io ()
+cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do
+  let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing
+  let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr
+  pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)
+  lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands'
+                                                    (commandBufferHandle (commandBuffer))
+                                                    ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32))
+                                                    (pPCommandBuffers))
+  pure $ ()
+
+
+-- | VkClearRect - Structure specifying a clear rectangle
+--
+-- = Description
+--
+-- The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting
+-- from the base layer of the attachment image view are cleared.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'
+data ClearRect = ClearRect
+  { -- | @rect@ is the two-dimensional region to be cleared.
+    rect :: Rect2D
+  , -- | @baseArrayLayer@ is the first layer to be cleared.
+    baseArrayLayer :: Word32
+  , -- | @layerCount@ is the number of layers to clear.
+    layerCount :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ClearRect)
+#endif
+deriving instance Show ClearRect
+
+instance ToCStruct ClearRect where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ClearRect{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)
+    f
+  cStructSize = 24
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct ClearRect where
+  peekCStruct p = do
+    rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))
+    baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pure $ ClearRect
+             rect baseArrayLayer layerCount
+
+instance Storable ClearRect where
+  sizeOf ~_ = 24
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ClearRect where
+  zero = ClearRect
+           zero
+           zero
+           zero
+
+
+-- | VkImageSubresourceLayers - Structure specifying an image subresource
+-- layers
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@
+--     contains
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it
+--     /must/ not contain either of
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/
+--     not contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'
+--
+-- -   #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/
+--     not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index
+--     /i/
+--
+-- -   #VUID-VkImageSubresourceLayers-layerCount-09243# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, @layerCount@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-VkImageSubresourceLayers-layerCount-01700# If @layerCount@ is
+--     not 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', it /must/
+--     be greater than 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values
+--
+-- -   #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#
+--     @aspectMask@ /must/ not be @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'BufferImageCopy',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',
+-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV',
+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',
+-- 'ImageCopy',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',
+-- 'ImageResolve',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT',
+-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV'
+data ImageSubresourceLayers = ImageSubresourceLayers
+  { -- | @aspectMask@ is a combination of
+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting
+    -- the color, depth and\/or stencil aspects to be copied.
+    aspectMask :: ImageAspectFlags
+  , -- | @mipLevel@ is the mipmap level to copy
+    mipLevel :: Word32
+  , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of
+    -- layers to copy.
+    baseArrayLayer :: Word32
+  , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"
+    layerCount :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageSubresourceLayers)
+#endif
+deriving instance Show ImageSubresourceLayers
+
+instance ToCStruct ImageSubresourceLayers where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageSubresourceLayers{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)
+    f
+  cStructSize = 16
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct ImageSubresourceLayers where
+  peekCStruct p = do
+    aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))
+    mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    pure $ ImageSubresourceLayers
+             aspectMask mipLevel baseArrayLayer layerCount
+
+instance Storable ImageSubresourceLayers where
+  sizeOf ~_ = 16
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageSubresourceLayers where
+  zero = ImageSubresourceLayers
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkBufferCopy - Structure specifying a buffer copy operation
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'
+data BufferCopy = BufferCopy
+  { -- | @srcOffset@ is the starting offset in bytes from the start of
+    -- @srcBuffer@.
+    srcOffset :: DeviceSize
+  , -- | @dstOffset@ is the starting offset in bytes from the start of
+    -- @dstBuffer@.
+    dstOffset :: DeviceSize
+  , -- | @size@ is the number of bytes to copy.
+    size :: DeviceSize
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BufferCopy)
+#endif
+deriving instance Show BufferCopy
+
+instance ToCStruct BufferCopy where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BufferCopy{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)
+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct BufferCopy where
+  peekCStruct p = do
+    srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))
+    dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))
+    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    pure $ BufferCopy
+             srcOffset dstOffset size
+
+instance Storable BufferCopy where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BufferCopy where
+  zero = BufferCopy
+           zero
+           zero
+           zero
+
+
+-- | VkImageCopy - Structure specifying an image copy operation
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImageCopy-apiVersion-07940# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
+--     extension is not enabled, and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@
+--     and @dstSubresource@ /must/ match
+--
+-- -   #VUID-VkImageCopy-apiVersion-07941# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled, and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@
+--     and @dstSubresource@ /must/ match
+--
+-- -   #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0
+--
+-- -   #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0
+--
+-- -   #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/
+--     be a valid 'ImageSubresourceLayers' structure
+--
+-- -   #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/
+--     be a valid 'ImageSubresourceLayers' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',
+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'
+data ImageCopy = ImageCopy
+  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'
+    -- structures specifying the image subresources of the images used for the
+    -- source and destination image data, respectively.
+    srcSubresource :: ImageSubresourceLayers
+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets
+    -- in texels of the sub-regions of the source and destination image data.
+    srcOffset :: Offset3D
+  , -- No documentation found for Nested "VkImageCopy" "dstSubresource"
+    dstSubresource :: ImageSubresourceLayers
+  , -- No documentation found for Nested "VkImageCopy" "dstOffset"
+    dstOffset :: Offset3D
+  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@
+    -- and @depth@.
+    extent :: Extent3D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageCopy)
+#endif
+deriving instance Show ImageCopy
+
+instance ToCStruct ImageCopy where
+  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageCopy{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)
+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)
+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)
+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)
+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)
+    f
+  cStructSize = 68
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)
+    f
+
+instance FromCStruct ImageCopy where
+  peekCStruct p = do
+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))
+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))
+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))
+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))
+    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))
+    pure $ ImageCopy
+             srcSubresource srcOffset dstSubresource dstOffset extent
+
+instance Storable ImageCopy where
+  sizeOf ~_ = 68
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageCopy where
+  zero = ImageCopy
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkImageBlit - Structure specifying an image blit operation
+--
+-- = Description
+--
+-- For each element of the @pRegions@ array, a blit operation is performed
+-- for the specified source and destination regions.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of
+--     @srcSubresource@ and @dstSubresource@ /must/ match
+--
+-- -   #VUID-VkImageBlit-layerCount-08800# If neither of the @layerCount@
+--     members of @srcSubresource@ or @dstSubresource@ are
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the
+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/
+--     match
+--
+-- -   #VUID-VkImageBlit-maintenance5-08799# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, the @layerCount@ member of @srcSubresource@
+--     or @dstSubresource@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-VkImageBlit-layerCount-08801# If one of the @layerCount@
+--     members of @srcSubresource@ or @dstSubresource@ is
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other
+--     member /must/ be either
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the
+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
+--     used to create the image minus @baseArrayLayer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/
+--     be a valid 'ImageSubresourceLayers' structure
+--
+-- -   #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/
+--     be a valid 'ImageSubresourceLayers' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',
+-- 'cmdBlitImage'
+data ImageBlit = ImageBlit
+  { -- | @srcSubresource@ is the subresource to blit from.
+    srcSubresource :: ImageSubresourceLayers
+  , -- | @srcOffsets@ is a pointer to an array of two
+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the
+    -- bounds of the source region within @srcSubresource@.
+    srcOffsets :: (Offset3D, Offset3D)
+  , -- | @dstSubresource@ is the subresource to blit into.
+    dstSubresource :: ImageSubresourceLayers
+  , -- | @dstOffsets@ is a pointer to an array of two
+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the
+    -- bounds of the destination region within @dstSubresource@.
+    dstOffsets :: (Offset3D, Offset3D)
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageBlit)
+#endif
+deriving instance Show ImageBlit
+
+instance ToCStruct ImageBlit where
+  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageBlit{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)
+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))
+    case (srcOffsets) of
+      (e0, e1) -> do
+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)
+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
+    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)
+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))
+    case (dstOffsets) of
+      (e0, e1) -> do
+        poke (pDstOffsets' :: Ptr Offset3D) (e0)
+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
+    f
+  cStructSize = 80
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)
+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))
+    case ((zero, zero)) of
+      (e0, e1) -> do
+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)
+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
+    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)
+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))
+    case ((zero, zero)) of
+      (e0, e1) -> do
+        poke (pDstOffsets' :: Ptr Offset3D) (e0)
+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)
+    f
+
+instance FromCStruct ImageBlit where
+  peekCStruct p = do
+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))
+    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))
+    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))
+    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))
+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))
+    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))
+    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))
+    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))
+    pure $ ImageBlit
+             srcSubresource
+             ((srcOffsets0, srcOffsets1))
+             dstSubresource
+             ((dstOffsets0, dstOffsets1))
+
+instance Storable ImageBlit where
+  sizeOf ~_ = 80
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageBlit where
+  zero = ImageBlit
+           zero
+           (zero, zero)
+           zero
+           (zero, zero)
+
+
+-- | VkBufferImageCopy - Structure specifying a buffer image copy operation
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBufferImageCopy-bufferRowLength-09101# @bufferRowLength@
+--     /must/ be @0@, or greater than or equal to the @width@ member of
+--     @imageExtent@
+--
+-- -   #VUID-VkBufferImageCopy-bufferImageHeight-09102# @bufferImageHeight@
+--     /must/ be @0@, or greater than or equal to the @height@ member of
+--     @imageExtent@
+--
+-- -   #VUID-VkBufferImageCopy-aspectMask-09103# The @aspectMask@ member of
+--     @imageSubresource@ /must/ only have a single bit set
+--
+-- -   #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@
+--     /must/ not be 0
+--
+-- -   #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@
+--     /must/ not be 0
+--
+-- -   #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@
+--     /must/ not be 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkBufferImageCopy-imageSubresource-parameter#
+--     @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'
+--     structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',
+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',
+-- 'cmdCopyImageToBuffer'
+data BufferImageCopy = BufferImageCopy
+  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer
+    -- object where the image data is copied from or to.
+    bufferOffset :: DeviceSize
+  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion
+    -- of a larger two- or three-dimensional image in buffer memory, and
+    -- control the addressing calculations. If either of these values is zero,
+    -- that aspect of the buffer memory is considered to be tightly packed
+    -- according to the @imageExtent@.
+    bufferRowLength :: Word32
+  , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"
+    bufferImageHeight :: Word32
+  , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the
+    -- specific image subresources of the image used for the source or
+    -- destination image data.
+    imageSubresource :: ImageSubresourceLayers
+  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the
+    -- sub-region of the source or destination image data.
+    imageOffset :: Offset3D
+  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,
+    -- @height@ and @depth@.
+    imageExtent :: Extent3D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BufferImageCopy)
+#endif
+deriving instance Show BufferImageCopy
+
+instance ToCStruct BufferImageCopy where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BufferImageCopy{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)
+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)
+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)
+    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)
+    f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)
+    f
+
+instance FromCStruct BufferImageCopy where
+  peekCStruct p = do
+    bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))
+    bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))
+    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))
+    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))
+    pure $ BufferImageCopy
+             bufferOffset
+             bufferRowLength
+             bufferImageHeight
+             imageSubresource
+             imageOffset
+             imageExtent
+
+instance Storable BufferImageCopy where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BufferImageCopy where
+  zero = BufferImageCopy
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkImageResolve - Structure specifying an image resolve operation
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of
+--     @srcSubresource@ and @dstSubresource@ /must/ only contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-VkImageResolve-layerCount-08803# If neither of the
+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ are
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the
+--     @layerCount@ member of @srcSubresource@ and @dstSubresource@ /must/
+--     match
+--
+-- -   #VUID-VkImageResolve-maintenance5-08802# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, the @layerCount@ member of @srcSubresource@
+--     or @dstSubresource@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-VkImageResolve-layerCount-08804# If one of the @layerCount@
+--     members of @srcSubresource@ or @dstSubresource@ is
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other
+--     member /must/ be either
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the
+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
+--     used to create the image minus @baseArrayLayer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@
+--     /must/ be a valid 'ImageSubresourceLayers' structure
+--
+-- -   #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@
+--     /must/ be a valid 'ImageSubresourceLayers' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',
+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'
+data ImageResolve = ImageResolve
+  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'
+    -- structures specifying the image subresources of the images used for the
+    -- source and destination image data, respectively. Resolve of
+    -- depth\/stencil images is not supported.
+    srcSubresource :: ImageSubresourceLayers
+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets
+    -- in texels of the sub-regions of the source and destination image data.
+    srcOffset :: Offset3D
+  , -- No documentation found for Nested "VkImageResolve" "dstSubresource"
+    dstSubresource :: ImageSubresourceLayers
+  , -- No documentation found for Nested "VkImageResolve" "dstOffset"
+    dstOffset :: Offset3D
+  , -- | @extent@ is the size in texels of the source image to resolve in
+    -- @width@, @height@ and @depth@.
+    extent :: Extent3D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageResolve)
+#endif
+deriving instance Show ImageResolve
+
+instance ToCStruct ImageResolve where
+  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageResolve{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)
+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)
+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)
+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)
+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)
+    f
+  cStructSize = 68
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)
+    f
+
+instance FromCStruct ImageResolve where
+  peekCStruct p = do
+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))
+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))
+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))
+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))
+    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))
+    pure $ ImageResolve
+             srcSubresource srcOffset dstSubresource dstOffset extent
+
+instance Storable ImageResolve where
+  sizeOf ~_ = 68
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageResolve where
+  zero = ImageResolve
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkRenderPassBeginInfo - Structure specifying render pass begin
+-- information
+--
+-- = Description
+--
+-- @renderArea@ is the render area that is affected by the render pass
+-- instance. The effects of attachment load, store and multisample resolve
+-- operations are restricted to the pixels whose x and y coordinates fall
+-- within the render area on all attachments. The render area extends to
+-- all layers of @framebuffer@. The application /must/ ensure (using
+-- scissor if necessary) that all rendering is contained within the render
+-- area. The render area, after any transform specified by
+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
+-- is applied, /must/ be contained within the framebuffer dimensions.
+--
+-- If
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>
+-- is enabled, then @renderArea@ /must/ equal the framebuffer
+-- pre-transformed dimensions. After @renderArea@ has been transformed by
+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,
+-- the resulting render area /must/ be equal to the framebuffer dimensions.
+--
+-- If multiview is enabled in @renderPass@, and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>
+-- feature is enabled, and there is an instance of
+-- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
+-- included in the @pNext@ chain with @perViewRenderAreaCount@ not equal to
+-- @0@, then the elements of
+-- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'::@pPerViewRenderAreas@
+-- override @renderArea@ and define a render area for each view. In this
+-- case, @renderArea@ /must/ be set to an area at least as large as the
+-- union of all the per-view render areas.
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>
+-- feature is enabled, then @renderArea@ /must/ equal the framebuffer
+-- dimensions.
+--
+-- Note
+--
+-- There /may/ be a performance cost for using a render area smaller than
+-- the framebuffer, unless it matches the render area granularity for the
+-- render pass.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@
+--     /must/ be greater than the largest attachment index in @renderPass@
+--     specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a
+--     depth\/stencil format) of
+--     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'
+--
+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If
+--     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid
+--     pointer to an array of @clearValueCount@ 'ClearValue' unions
+--
+-- -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>
+--     with the @renderPass@ member of the
+--     'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when
+--     creating @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-None-08996# If
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@
+--     is 0, @renderArea.extent.width@ /must/ be greater than 0
+--
+-- -   #VUID-VkRenderPassBeginInfo-None-08997# If
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@
+--     is 0, @renderArea.extent.height@ /must/ be greater than 0
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does
+--     not contain
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
+--     or its @deviceRenderAreaCount@ member is equal to 0,
+--     @renderArea.offset.x@ /must/ be greater than or equal to 0
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does
+--     not contain
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
+--     or its @deviceRenderAreaCount@ member is equal to 0,
+--     @renderArea.offset.y@ /must/ be greater than or equal to 0
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does
+--     not contain
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
+--     or its @deviceRenderAreaCount@ member is equal to 0,
+--     @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less
+--     than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@
+--     the @framebuffer@ was created with
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does
+--     not contain
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'
+--     or its @deviceRenderAreaCount@ member is equal to 0,
+--     @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less
+--     than or equal to
+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the
+--     @framebuffer@ was created with
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain
+--     contains
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
+--     @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@
+--     /must/ be less than or equal to
+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the
+--     @framebuffer@ was created with
+--
+-- -   #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain
+--     contains
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',
+--     @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@
+--     /must/ be less than or equal to
+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the
+--     @framebuffer@ was created with
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that did not include
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     and the @pNext@ chain includes a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure, its @attachmentCount@ /must/ be zero
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     the @attachmentCount@ of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be equal to the value
+--     of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ have been created on
+--     the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and
+--     @renderPass@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value
+--     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the
+--     @flags@ member of the corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>
+--     equal to the @usage@ member of the corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@
+--     member of the corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' with a height equal to the
+--     @height@ member of the corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value
+--     of
+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@
+--     equal to the @layerCount@ member of the corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value
+--     of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@
+--     equal to the @viewFormatCount@ member of the corresponding element
+--     of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a set of
+--     elements in
+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@
+--     equal to the set of elements in the @pViewFormats@ member of the
+--     corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
+--     used to create @framebuffer@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value
+--     of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to
+--     the corresponding value of
+--     'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-09353# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', the format of the color
+--     attachment for each subpass that includes an external format image
+--     as a resolve attachment /must/ have a format equal to the value of
+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@
+--     as returned by a call to
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID'
+--     for the Android hardware buffer that was used to create the image
+--     view use as its resolve attachment
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-09354# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value
+--     of
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     equal to
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     in the @pNext@ chain of the corresponding
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2'
+--     structure used to create @renderPass@
+--
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-09047# If @framebuffer@ was
+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
+--     value that included
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     each element of the @pAttachments@ member of a
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
+--     structure included in the @pNext@ chain /must/ be a
+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value
+--     of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the
+--     corresponding value of
+--     'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in
+--     @renderPass@ , or
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' if
+--     @renderPass@ was created with
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure in the @pNext@ chain with
+--     @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE'
 --
 -- -   #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain
 --     includes
diff --git a/src/Vulkan/Core10/DescriptorSet.hs b/src/Vulkan/Core10/DescriptorSet.hs
--- a/src/Vulkan/Core10/DescriptorSet.hs
+++ b/src/Vulkan/Core10/DescriptorSet.hs
@@ -1008,19 +1008,6 @@
 -- | VkDescriptorBufferInfo - Structure specifying descriptor buffer
 -- information
 --
--- = Members
---
--- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>
--- /must/ not be larger than the maximum range for the descriptor type
--- (<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange>
--- or
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>).
--- This means that 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is not typically
--- useful in the common case where uniform buffer descriptors are
--- suballocated from a buffer that is much larger than
--- @maxUniformBufferRange@.
---
 -- = Description
 --
 -- For
@@ -1079,6 +1066,19 @@
   , -- | @range@ is the size in bytes that is used for this descriptor update, or
     -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to use the range from @offset@
     -- to the end of the buffer.
+    --
+    -- Note
+    --
+    -- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>
+    -- /must/ not be larger than the maximum range for the descriptor type
+    -- (<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange>
+    -- or
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>).
+    -- This means that 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is not typically
+    -- useful in the common case where uniform buffer descriptors are
+    -- suballocated from a buffer that is much larger than
+    -- @maxUniformBufferRange@.
     range :: DeviceSize
   }
   deriving (Typeable, Eq)
@@ -1150,13 +1150,13 @@
 --
 -- -   #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
+--     feature is not enabled or @descriptorType@ is not
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'
 --     then @imageView@ /must/ not be a 2D view created from a 3D image
 --
 -- -   #VUID-VkDescriptorImageInfo-descriptorType-06714# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampler2DViewOf3D sampler2DViewOf3D>
---     feature is not enabled and @descriptorType@ is
+--     feature is not enabled or @descriptorType@ is not
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
 --     or
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
@@ -1182,6 +1182,7 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT',
 --     and the @aspectMask@ of the @imageView@ /must/ be a valid
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450# If the
 --     @VK_KHR_portability_subset@ extension is enabled, and
@@ -1575,21 +1576,21 @@
 --     less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxStorageBufferRange@
 --
--- -   #VUID-VkWriteDescriptorSet-descriptorType-00334# If @descriptorType@
+-- -   #VUID-VkWriteDescriptorSet-descriptorType-08765# If @descriptorType@
 --     is
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER',
---     the 'Vulkan.Core10.Handles.Buffer' that each element of
---     @pTexelBufferView@ was created from /must/ have been created with
+--     the @pTexelBufferView@
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usage buffer view usage>
+--     /must/ include
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT'
---     set
 --
--- -   #VUID-VkWriteDescriptorSet-descriptorType-00335# If @descriptorType@
+-- -   #VUID-VkWriteDescriptorSet-descriptorType-08766# If @descriptorType@
 --     is
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER',
---     the 'Vulkan.Core10.Handles.Buffer' that each element of
---     @pTexelBufferView@ was created from /must/ have been created with
+--     the @pTexelBufferView@
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usage buffer view usage>
+--     /must/ include
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT'
---     set
 --
 -- -   #VUID-VkWriteDescriptorSet-descriptorType-00336# If @descriptorType@
 --     is
@@ -1668,7 +1669,7 @@
 --     the @imageView@ member of each element of @pImageInfo@ /must/ have
 --     either been created without a
 --     'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT'
---     present in the @pNext@ chain or with a
+--     included in the @pNext@ chain or with a
 --     'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT'::@minLod@
 --     of @0.0@
 --
@@ -2717,7 +2718,7 @@
 -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a
 -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT'
 -- struct in the @pNext@ chain /can/ be used to specify which mutable
--- descriptor types /can/ be allocated from the pool. If present in the
+-- descriptor types /can/ be allocated from the pool. If included in the
 -- @pNext@ chain,
 -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT'::@pMutableDescriptorTypeLists@[i]
 -- specifies which kind of
@@ -2757,9 +2758,21 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkDescriptorPoolCreateInfo-maxSets-00301# @maxSets@ /must/ be
---     greater than @0@
+-- -   #VUID-VkDescriptorPoolCreateInfo-descriptorPoolOverallocation-09227#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorPoolOverallocation descriptorPoolOverallocation>
+--     feature is not enabled, or @flags@ does not have
+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+--     set, @maxSets@ /must/ be greater than @0@
 --
+-- -   #VUID-VkDescriptorPoolCreateInfo-flags-09228# If @flags@ has the
+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+--     or
+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV'
+--     bits set, then
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorPoolOverallocation descriptorPoolOverallocation>
+--     /must/ be enabled
+--
 -- -   #VUID-VkDescriptorPoolCreateInfo-flags-04607# If @flags@ has the
 --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT'
 --     bit set, then the
@@ -2922,6 +2935,20 @@
 --     bit set, @descriptorPool@ /must/ have been created with the
 --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'
 --     flag set
+--
+-- -   #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380# If
+--     @pSetLayouts@[i] was created with an element of @pBindingFlags@ that
+--     includes
+--     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT',
+--     and
+--     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo'
+--     is included in the @pNext@ chain, and
+--     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo'::@descriptorSetCount@
+--     is not zero, then
+--     slink::VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i]
+--     /must/ be less than or equal to
+--     slink::VkDescriptorSetLayoutBinding::descriptorCount for the
+--     corresponding binding used to create @pSetLayouts@[i]
 --
 -- -   #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610# If any element
 --     of @pSetLayouts@ was created with the
diff --git a/src/Vulkan/Core10/Device.hs b/src/Vulkan/Core10/Device.hs
--- a/src/Vulkan/Core10/Device.hs
+++ b/src/Vulkan/Core10/Device.hs
@@ -95,6 +95,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT)
@@ -105,28 +106,38 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (PhysicalDeviceDepthBiasControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_displacement_micromap (PhysicalDeviceDisplacementMicromapFeaturesNV)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolveFeaturesANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT)
 import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)
@@ -137,12 +148,15 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (PhysicalDeviceFrameBoundaryFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d (PhysicalDeviceImageSlicedViewOf3DFeaturesEXT)
@@ -156,6 +170,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderFeaturesEXT)
@@ -166,6 +181,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas (PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowFeaturesNV)
@@ -193,6 +209,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
@@ -206,6 +223,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)
@@ -239,6 +257,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (PhysicalDeviceYcbcrDegammaFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)
 import Vulkan.Core10.Handles (PhysicalDevice_T)
@@ -416,7 +435,7 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkDestroyDevice-device-00378# All child objects created on
+-- -   #VUID-vkDestroyDevice-device-05137# All child objects created on
 --     @device@ /must/ have been destroyed prior to destroying @device@
 --
 -- -   #VUID-vkDestroyDevice-device-00379# If
@@ -620,8 +639,8 @@
 --
 -- -   #VUID-VkDeviceCreateInfo-queueFamilyIndex-02802# The
 --     @queueFamilyIndex@ member of each element of @pQueueCreateInfos@
---     /must/ be unique within @pQueueCreateInfos@, except that two members
---     can share the same @queueFamilyIndex@ if one describes
+--     /must/ be unique within @pQueueCreateInfos@ , except that two
+--     members can share the same @queueFamilyIndex@ if one describes
 --     protected-capable queues and one describes queues that are not
 --     protected-capable
 --
@@ -853,6 +872,7 @@
 --     'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT',
 --     'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',
@@ -863,28 +883,38 @@
 --     'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',
+--     'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',
 --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV',
 --     'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV',
 --     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV',
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_clamp.PhysicalDeviceCubicClampFeaturesQCOM',
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.PhysicalDeviceCubicWeightsFeaturesQCOM',
 --     'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures',
+--     'Vulkan.Extensions.VK_NV_descriptor_pool_overallocation.PhysicalDeviceDescriptorPoolOverallocationFeaturesNV',
 --     'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',
+--     'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
 --     'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',
 --     'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV',
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures',
+--     'Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments.PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolveFeaturesANDROID',
 --     'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
 --     'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
 --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
@@ -894,12 +924,15 @@
 --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',
+--     'Vulkan.Extensions.VK_EXT_frame_boundary.PhysicalDeviceFrameBoundaryFeaturesEXT',
 --     'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',
+--     'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',
 --     'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',
+--     'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM',
 --     'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures',
 --     'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.PhysicalDeviceImageSlicedViewOf3DFeaturesEXT',
@@ -913,6 +946,7 @@
 --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
 --     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5FeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',
@@ -923,6 +957,7 @@
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM',
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports.PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM',
 --     'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT',
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV',
@@ -950,6 +985,7 @@
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
 --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
@@ -963,6 +999,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',
 --     'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueueFeaturesAMDX',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features',
 --     'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',
@@ -996,6 +1033,7 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',
 --     'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.PhysicalDeviceYcbcrDegammaFeaturesQCOM',
 --     'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',
 --     or
 --     'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures'
@@ -1079,12 +1117,26 @@
   getNext DeviceCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolveFeaturesANDROID = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2FeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCubicWeightsFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceYcbcrDegammaFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCubicClampFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueueFeaturesAMDX = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesKHR = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderTileImageFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderObjectFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceRayTracingPositionFetchFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDepthBiasControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceFrameBoundaryFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f
@@ -1105,6 +1157,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceNestedCommandBufferFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = Just f
     | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f
@@ -1123,12 +1176,14 @@
     | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceHostImageCopyFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f
@@ -1219,6 +1274,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance5FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f
@@ -1235,6 +1291,7 @@
     | Just Refl <- eqT @e @(PhysicalDeviceFeatures2 '[]) = Just f
     | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f
     | Just Refl <- eqT @e @DevicePrivateDataCreateInfo = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f
     | otherwise = Nothing
 
diff --git a/src/Vulkan/Core10/DeviceInitialization.hs b/src/Vulkan/Core10/DeviceInitialization.hs
--- a/src/Vulkan/Core10/DeviceInitialization.hs
+++ b/src/Vulkan/Core10/DeviceInitialization.hs
@@ -572,10 +572,12 @@
 -- [2]
 --     Device-level commands which are part of the core version specified
 --     by 'ApplicationInfo'::@apiVersion@ when creating the instance will
---     always return a valid function pointer. Core commands beyond that
---     version which are supported by the implementation /may/ either
---     return @NULL@ or a function pointer, though the function pointer
---     /must/ not be called.
+--     always return a valid function pointer. If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is enabled, core commands beyond that version which are
+--     supported by the implementation will return @NULL@, otherwise the
+--     implementation /may/ either return @NULL@ or a function pointer. If
+--     a function pointer is returned, it /must/ not be called.
 --
 -- [3]
 --     In this function, device-level excludes all physical-device-level
@@ -1005,6 +1007,18 @@
 -- the limitations for @usage2@ and @flags2@, for all values of @format@,
 -- @type@, and @tiling@.
 --
+-- If @VK_EXT_host_image_copy@ is supported, @usage@ includes
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and
+-- @flags@ does not include either of
+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',
+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT',
+-- or
+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT',
+-- then the result of calls to 'getPhysicalDeviceImageFormatProperties'
+-- with identical parameters except for the inclusion of
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+-- in @usage@ /must/ be identical.
+--
 -- == Return Codes
 --
 -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
@@ -1318,7 +1332,7 @@
 -- 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DRIVER' if @apiVersion@
 -- was larger than 1.0. Implementations that support Vulkan 1.1 or later
 -- /must/ not return 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DRIVER'
--- for any value of @apiVersion@.
+-- for any value of @apiVersion@ .
 --
 -- Note
 --
@@ -1411,8 +1425,8 @@
     -- application is designed to use, encoded as described in
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.
     -- The patch version number specified in @apiVersion@ is ignored when
-    -- creating an instance object. Only the major and minor versions of the
-    -- instance /must/ match those requested in @apiVersion@.
+    -- creating an instance object. The variant version of the instance /must/
+    -- match that requested in @apiVersion@.
     apiVersion :: Word32
   }
   deriving (Typeable)
@@ -1479,7 +1493,7 @@
 -- = Description
 --
 -- To capture events that occur while creating or destroying an instance,
--- an application can link a
+-- an application /can/ link a
 -- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT'
 -- structure or a
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'
@@ -2555,12 +2569,20 @@
     --         @OpConstantNull@ are treated as pointing to a zero-sized object,
     --         so all accesses through such pointers are considered to be out
     --         of bounds. Buffer accesses through buffer device addresses are
-    --         not bounds-checked. If the
-    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess cooperativeMatrixRobustBufferAccess>
+    --         not bounds-checked.
+    --
+    --     -   If the
+    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess-NV ::cooperativeMatrixRobustBufferAccess>
     --         feature is not enabled, then accesses using
     --         @OpCooperativeMatrixLoadNV@ and @OpCooperativeMatrixStoreNV@
     --         /may/ not be bounds-checked.
     --
+    --     -   If the
+    --         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess ::cooperativeMatrixRobustBufferAccess>
+    --         feature is not enabled, then accesses using
+    --         @OpCooperativeMatrixLoadKHR@ and @OpCooperativeMatrixStoreKHR@
+    --         /may/ not be bounds-checked.
+    --
     --         Note
     --
     --         If a SPIR-V @OpLoad@ instruction loads a structure and the tail
@@ -3946,7 +3968,17 @@
   , -- | #limits-sparseAddressSpaceSize# @sparseAddressSpaceSize@ is the total
     -- amount of address space available, in bytes, for sparse memory
     -- resources. This is an upper bound on the sum of the sizes of all sparse
-    -- resources, regardless of whether any memory is bound to them.
+    -- resources, regardless of whether any memory is bound to them. If the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+    -- feature is enabled, then the difference between
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-extendedSparseAddressSpaceSize extendedSparseAddressSpaceSize>
+    -- and @sparseAddressSpaceSize@ can also be used, by
+    -- 'Vulkan.Core10.Handles.Image' created with the @usage@ member of
+    -- 'Vulkan.Core10.Image.ImageCreateInfo' only containing bits in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-extendedSparseImageUsageFlags extendedSparseImageUsageFlags>
+    -- and 'Vulkan.Core10.Handles.Buffer' created with the @usage@ member of
+    -- 'Vulkan.Core10.Buffer.BufferCreateInfo' only containing bits in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-extendedSparseBufferUsageFlags extendedSparseBufferUsageFlags>.
     sparseAddressSpaceSize :: DeviceSize
   , -- | #limits-maxBoundDescriptorSets# @maxBoundDescriptorSets@ is the maximum
     -- number of descriptor sets that /can/ be simultaneously used by a
@@ -4312,21 +4344,7 @@
   , -- | #limits-maxComputeSharedMemorySize# @maxComputeSharedMemorySize@ is the
     -- maximum total storage size, in bytes, available for variables declared
     -- with the @Workgroup@ storage class in shader modules (or with the
-    -- @shared@ storage qualifier in GLSL) in the compute shader stage. When
-    -- variables declared with the @Workgroup@ storage class are explicitly
-    -- laid out (hence they are also decorated with @Block@), the amount of
-    -- storage consumed is the size of the largest Block variable, not counting
-    -- any padding at the end. The amount of storage consumed by the non-Block
-    -- variables declared with the @Workgroup@ storage class is
-    -- implementation-dependent. However, the amount of storage consumed may
-    -- not exceed the largest block size that would be obtained if all active
-    -- non-Block variables declared with @Workgroup@ storage class were
-    -- assigned offsets in an arbitrary order by successively taking the
-    -- smallest valid offset according to the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout>
-    -- rules, and with @Boolean@ values considered as 32-bit integer values for
-    -- the purpose of this calculation. (This is equivalent to using the GLSL
-    -- std430 layout rules.)
+    -- @shared@ storage qualifier in GLSL) in the compute shader stage.
     maxComputeSharedMemorySize :: Word32
   , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the
     -- maximum number of local workgroups that /can/ be dispatched by a single
@@ -4690,7 +4708,10 @@
     -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2',
     -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',
     -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',
-    -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per
+    -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. This
+    -- value is also the optimal host memory offset alignment in bytes for
+    -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT' and
+    -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT'. The per
     -- texel alignment requirements are enforced, but applications /should/ use
     -- the optimal alignment for optimal performance and power use. The value
     -- /must/ be a power of two.
@@ -4701,7 +4722,10 @@
     -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2',
     -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',
     -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',
-    -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row
+    -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. This
+    -- value is also the optimal host memory row pitch alignment in bytes for
+    -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT' and
+    -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT'. Row
     -- pitch is the number of bytes between texels with the same X coordinate
     -- in adjacent rows (Y coordinates differ by one). The per texel alignment
     -- requirements are enforced, but applications /should/ use the optimal
diff --git a/src/Vulkan/Core10/Enums/AccessFlagBits.hs b/src/Vulkan/Core10/Enums/AccessFlagBits.hs
--- a/src/Vulkan/Core10/Enums/AccessFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/AccessFlagBits.hs
@@ -66,117 +66,213 @@
 -- accesses of that type. The following table lists, for each access flag,
 -- which pipeline stages /can/ perform that type of access.
 --
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | Access flag                                                                 | Supported pipeline stages                                                                           |
--- +=============================================================================+=====================================================================================================+
--- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_INDEX_READ_BIT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_UNIFORM_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_SHADER_READ_BIT'                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |
--- |                                                                             | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT',                  |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_SHADER_WRITE_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                          | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or           |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_TRANSFER_READ_BIT'                                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_TRANSFER_WRITE_BIT'                                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_HOST_READ_BIT'                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_HOST_WRITE_BIT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_MEMORY_READ_BIT'                                                    | Any                                                                                                 |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_MEMORY_WRITE_BIT'                                                   | Any                                                                                                 |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'               |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |
--- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@                                     | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@                                                          |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@                                    | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@                                                          |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@                                     | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@                                                          |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--- | @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@                                    | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@                                                          |
--- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | Access flag                                                                               | Supported pipeline stages                                                                           |
+-- +===========================================================================================+=====================================================================================================+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_NONE'                                          | Any                                                                                                 |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT'                     | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT'                                | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',                        |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT'                          |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT'                     | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',                        |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT'                              | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT'                     | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'                |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT'                               | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT',                  |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT'                              | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT'                     | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'              |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT'                    | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'              |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT'             | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',                |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'                  |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'            | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',                |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'                  |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT'                             | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',                        |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',                                |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',                             |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_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',     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'                   |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT'                            | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',                        |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',                                |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',                             |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',                                |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_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',     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'                   |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT'                                 | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'                                 |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT'                                | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'                                 |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MEMORY_READ_BIT'                               | Any                                                                                                 |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MEMORY_WRITE_BIT'                              | Any                                                                                                 |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT'                       | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT'                       | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT'                      | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@                                                   | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@                                                          |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@                                                  | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@                                                          |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@                                                   | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@                                                          |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@                                                  | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@                                                          |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'              | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'       | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'      | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'            | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'            |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'                | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'                |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'               | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'                |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI',       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR',     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'                |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'          | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'      |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'             | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'     | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'              |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT'                | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'               | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'               |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'             | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT',                       |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT',         |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT',      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT',                      |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR',              |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT',                     |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',               |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'        |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT'                         | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT',                  |
+-- |                                                                                           | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT'                        | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'                   |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV'                      | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'                      |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
+-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV'                     | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'                      |
+-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
 --
 -- Supported access types
 --
@@ -196,6 +292,7 @@
 
 -- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part
 -- of an indexed drawing command, bound by
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access
 -- occurs in the
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'
@@ -219,14 +316,13 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment>
 -- within a render pass during subpass shading or fragment shading. Such
 -- access occurs in the
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 -- or
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
 -- pipeline stage.
 pattern ACCESS_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000010
 
 -- | 'ACCESS_SHADER_READ_BIT' specifies read access to a
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>,
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
@@ -250,14 +346,18 @@
 -- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>,
 -- such as via
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>
+-- (other than
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>),
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>
 -- or certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
--- It does not include
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
--- Such access occurs in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>
+-- in the
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
+-- pipeline stage or via
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads>
+-- in the
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
 -- pipeline stage.
 pattern ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080
 
@@ -265,9 +365,11 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment>
 -- during a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>
--- or via certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
--- Such access occurs in the
+-- or via certain render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>
+-- operations. Such access occurs in the
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
 -- pipeline stage.
 pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000100
@@ -277,21 +379,27 @@
 -- via
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
 -- or certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
--- Such access occurs in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>
+-- in the
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
 -- or
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
--- pipeline stages.
+-- pipeline stages or via
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads>
+-- in the
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
+-- pipeline stage.
 pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000200
 
 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
 -- via
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
--- or certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
--- Such access occurs in the
+-- or certain render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>
+-- operations. Such access occurs in the
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
 -- or
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
@@ -341,7 +449,7 @@
 pattern ACCESS_MEMORY_WRITE_BIT = AccessFlagBits 0x00010000
 
 -- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the target
--- command buffer:VkBuffer preprocess outputs in
+-- command buffer preprocess outputs in
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
 -- Such access occurs in the
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
diff --git a/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs b/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs
--- a/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs
+++ b/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs
@@ -16,8 +16,8 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 
--- | VkAttachmentLoadOp - Specify how contents of an attachment are treated
--- at the beginning of a subpass
+-- | VkAttachmentLoadOp - Specify how contents of an attachment are
+-- initialized at the beginning of a subpass
 --
 -- = See Also
 --
@@ -29,8 +29,8 @@
   deriving newtype (Eq, Ord, Storable, Zero)
 
 -- | 'ATTACHMENT_LOAD_OP_LOAD' specifies that the previous contents of the
--- image within the render area will be preserved. For attachments with a
--- depth\/stencil format, this uses the access type
+-- image within the render area will be preserved as the initial values.
+-- For attachments with a depth\/stencil format, this uses the access type
 -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'.
 -- For attachments with a color format, this uses the access type
 -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_READ_BIT'.
@@ -55,9 +55,8 @@
 pattern ATTACHMENT_LOAD_OP_DONT_CARE = AttachmentLoadOp 2
 
 -- | 'ATTACHMENT_LOAD_OP_NONE_EXT' specifies that the previous contents of
--- the image within the render area will be preserved, but the contents of
--- the attachment will be undefined inside the render pass. No access type
--- is used as the image is not accessed.
+-- the image will be undefined inside the render pass. No access type is
+-- used as the image is not accessed.
 pattern ATTACHMENT_LOAD_OP_NONE_EXT = AttachmentLoadOp 1000400000
 
 {-# COMPLETE
diff --git a/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs b/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs
--- a/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs
+++ b/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs
@@ -15,8 +15,8 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 
--- | VkAttachmentStoreOp - Specify how contents of an attachment are treated
--- at the end of a subpass
+-- | VkAttachmentStoreOp - Specify how contents of an attachment are stored
+-- to memory at the end of a subpass
 --
 -- = Description
 --
@@ -53,9 +53,10 @@
 pattern ATTACHMENT_STORE_OP_DONT_CARE = AttachmentStoreOp 1
 
 -- | 'ATTACHMENT_STORE_OP_NONE' specifies the contents within the render area
--- are not accessed by the store operation. However, if the attachment was
--- written to during the render pass, the contents of the attachment will
--- be undefined inside the render area.
+-- are not accessed by the store operation as long as no values are written
+-- to the attachment during the render pass. If values are written during
+-- the render pass, this behaves identically to
+-- 'ATTACHMENT_STORE_OP_DONT_CARE' and with matching access semantics.
 pattern ATTACHMENT_STORE_OP_NONE = AttachmentStoreOp 1000301000
 
 {-# COMPLETE
diff --git a/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs b/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs
@@ -18,6 +18,7 @@
                                                                      , BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR
                                                                      , BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
                                                                      , BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
+                                                                     , BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
                                                                      , BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
                                                                      , BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
                                                                      , BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
@@ -87,6 +88,7 @@
 
 -- | 'BUFFER_USAGE_INDEX_BUFFER_BIT' specifies that the buffer is suitable
 -- for passing as the @buffer@ parameter to
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
 pattern BUFFER_USAGE_INDEX_BUFFER_BIT = BufferUsageFlagBits 0x00000040
 
@@ -150,6 +152,11 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>.
 pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits 0x00080000
 
+-- | 'BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' specifies that the
+-- buffer /can/ be used for as scratch memory for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs execution graph dispatch>.
+pattern BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits 0x02000000
+
 -- | 'BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies that the buffer
 -- is suitable for passing as the @buffer@ parameter to
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'.
@@ -249,6 +256,10 @@
   ,
     ( BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
     , "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
+    , "EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
     )
   ,
     ( BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
diff --git a/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs b/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs
@@ -42,8 +42,9 @@
 pattern COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = CommandBufferUsageFlagBits 0x00000002
 
 -- | 'COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT' specifies that a command
--- buffer /can/ be resubmitted to a queue while it is in the /pending
--- state/, and recorded into multiple primary command buffers.
+-- buffer /can/ be resubmitted to any queue of the same queue family while
+-- it is in the /pending state/, and recorded into multiple primary command
+-- buffers.
 pattern COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = CommandBufferUsageFlagBits 0x00000004
 
 conNameCommandBufferUsageFlagBits :: String
diff --git a/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs
@@ -2,6 +2,8 @@
 -- No documentation found for Chapter "DescriptorPoolCreateFlagBits"
 module Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits  ( DescriptorPoolCreateFlags
                                                          , DescriptorPoolCreateFlagBits( DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
+                                                                                       , DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV
+                                                                                       , DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV
                                                                                        , DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT
                                                                                        , DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT
                                                                                        , ..
@@ -42,6 +44,28 @@
 -- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool' are allowed.
 pattern DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = DescriptorPoolCreateFlagBits 0x00000001
 
+-- | 'DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' specifies
+-- that the implementation should allow the application to allocate more
+-- descriptors from the pool than was specified by the
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize'::@descriptorCount@ for
+-- any descriptor type as specified by
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@poolSizeCount@
+-- and
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@pPoolSizes@, as
+-- available resources allow. The implementation /may/ use the
+-- @descriptorCount@ for each descriptor type to allocate the initial pool,
+-- but the application is allowed to set the @poolSizeCount@ to zero, or
+-- any of the @descriptorCount@ values in the @pPoolSizes@ array to zero.
+pattern DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = DescriptorPoolCreateFlagBits 0x00000010
+
+-- | 'DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' specifies that
+-- the implementation should allow the application to allocate more than
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@maxSets@
+-- descriptor set objects from the descriptor pool as available resources
+-- allow. The implementation /may/ use the @maxSets@ value to allocate the
+-- initial available sets, but using zero is permitted.
+pattern DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = DescriptorPoolCreateFlagBits 0x00000008
+
 -- | 'DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT' specifies that this
 -- descriptor pool and the descriptor sets allocated from it reside
 -- entirely in host memory and cannot be bound. Similar to descriptor sets
@@ -77,6 +101,14 @@
   [
     ( DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
     , "FREE_DESCRIPTOR_SET_BIT"
+    )
+  ,
+    ( DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV
+    , "ALLOW_OVERALLOCATION_POOLS_BIT_NV"
+    )
+  ,
+    ( DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV
+    , "ALLOW_OVERALLOCATION_SETS_BIT_NV"
     )
   ,
     ( DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT
diff --git a/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs
@@ -2,6 +2,7 @@
 -- No documentation found for Chapter "DescriptorSetLayoutCreateFlagBits"
 module Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits  ( DescriptorSetLayoutCreateFlags
                                                               , DescriptorSetLayoutCreateFlagBits( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
+                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV
                                                                                                  , DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
                                                                                                  , DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
                                                                                                  , DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
@@ -45,6 +46,14 @@
 -- non-UpdateAfterBind limits, whichever is larger.
 pattern DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000004
 
+-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that
+-- descriptor sets using this layout allows them to be bound with compute
+-- pipelines that are created with
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+-- flag set to be used in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
+pattern DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = DescriptorSetLayoutCreateFlagBits 0x00000080
+
 -- | 'DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT'
 -- specifies that this is a layout only containing immutable samplers that
 -- /can/ be bound by
@@ -86,6 +95,10 @@
   [
     ( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
     , "HOST_ONLY_POOL_BIT_EXT"
+    )
+  ,
+    ( DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV
+    , "INDIRECT_BINDABLE_BIT_NV"
     )
   ,
     ( DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
diff --git a/src/Vulkan/Core10/Enums/DynamicState.hs b/src/Vulkan/Core10/Enums/DynamicState.hs
--- a/src/Vulkan/Core10/Enums/DynamicState.hs
+++ b/src/Vulkan/Core10/Enums/DynamicState.hs
@@ -9,6 +9,7 @@
                                                       , DYNAMIC_STATE_STENCIL_COMPARE_MASK
                                                       , DYNAMIC_STATE_STENCIL_WRITE_MASK
                                                       , DYNAMIC_STATE_STENCIL_REFERENCE
+                                                      , DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
                                                       , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
                                                       , DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
                                                       , DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
@@ -118,14 +119,18 @@
 -- commands that generate line primitives for the rasterizer.
 pattern DYNAMIC_STATE_LINE_WIDTH = DynamicState 2
 
--- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that the @depthBiasConstantFactor@,
--- @depthBiasClamp@ and @depthBiasSlopeFactor@ states in
+-- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that any instance of
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT'
+-- included in the @pNext@ chain of
+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' as well as
+-- the @depthBiasConstantFactor@, @depthBiasClamp@ and
+-- @depthBiasSlopeFactor@ states in
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be
--- ignored and /must/ be set dynamically with
--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' before any draws
--- are performed with @depthBiasEnable@ in
--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' set to
--- 'Vulkan.Core10.FundamentalTypes.TRUE'.
+-- ignored and /must/ be set dynamically with either
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' before
+-- any draws are performed with
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-depthbias-enable depth bias enabled>.
 pattern DYNAMIC_STATE_DEPTH_BIAS = DynamicState 3
 
 -- | 'DYNAMIC_STATE_BLEND_CONSTANTS' specifies that the @blendConstants@
@@ -176,6 +181,15 @@
 -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'
 pattern DYNAMIC_STATE_STENCIL_REFERENCE = DynamicState 8
 
+-- | 'DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' specifies that the
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+-- and
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+-- flags will be ignored and /must/ be set dynamically with
+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+-- before any draw call.
+pattern DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = DynamicState 1000524000
+
 -- | 'DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' specifies that the
 -- @coverageReductionMode@ state in
 -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'
@@ -693,6 +707,7 @@
   , DYNAMIC_STATE_STENCIL_COMPARE_MASK
   , DYNAMIC_STATE_STENCIL_WRITE_MASK
   , DYNAMIC_STATE_STENCIL_REFERENCE
+  , DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
   , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
   , DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
   , DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
@@ -781,6 +796,10 @@
     , "STENCIL_WRITE_MASK"
     )
   , (DYNAMIC_STATE_STENCIL_REFERENCE, "STENCIL_REFERENCE")
+  ,
+    ( DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
+    , "ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT"
+    )
   ,
     ( DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
     , "COVERAGE_REDUCTION_MODE_NV"
diff --git a/src/Vulkan/Core10/Enums/Format.hs b/src/Vulkan/Core10/Enums/Format.hs
--- a/src/Vulkan/Core10/Enums/Format.hs
+++ b/src/Vulkan/Core10/Enums/Format.hs
@@ -185,6 +185,8 @@
                                           , FORMAT_ASTC_12x10_SRGB_BLOCK
                                           , FORMAT_ASTC_12x12_UNORM_BLOCK
                                           , FORMAT_ASTC_12x12_SRGB_BLOCK
+                                          , FORMAT_A8_UNORM_KHR
+                                          , FORMAT_A1B5G5R5_UNORM_PACK16_KHR
                                           , FORMAT_R16G16_S10_5_NV
                                           , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
                                           , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
@@ -269,6 +271,7 @@
 -- 'Vulkan.Extensions.VK_NV_displacement_micromap.AccelerationStructureTrianglesDisplacementMicromapNV',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID',
 -- 'Vulkan.Core10.Pass.AttachmentDescription',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',
 -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
@@ -285,8 +288,10 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.RenderingAreaInfoKHR',
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX',
 -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
 -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription',
@@ -1310,6 +1315,16 @@
 -- nonlinear encoding applied to the RGB components.
 pattern FORMAT_ASTC_12x12_SRGB_BLOCK = Format 184
 
+-- | 'FORMAT_A8_UNORM_KHR' specifies a one-component, 8-bit unsigned
+-- normalized format that has a single 8-bit A component.
+pattern FORMAT_A8_UNORM_KHR = Format 1000470001
+
+-- | 'FORMAT_A1B5G5R5_UNORM_PACK16_KHR' specifies a four-component, 16-bit
+-- packed unsigned normalized format that has a 1-bit A component in bit
+-- 15, a 5-bit B component in bits 10..14, a 5-bit G component in bits
+-- 5..9, and a 5-bit R component in bits 0..4.
+pattern FORMAT_A1B5G5R5_UNORM_PACK16_KHR = Format 1000470000
+
 -- | 'FORMAT_R16G16_S10_5_NV' specifies a two-component, fixed-point format
 -- where most significant bit specifies the sign bit, next 10 bits specify
 -- the integer value and last 5 bits represent the fractional value.
@@ -2222,6 +2237,8 @@
   , FORMAT_ASTC_12x10_SRGB_BLOCK
   , FORMAT_ASTC_12x12_UNORM_BLOCK
   , FORMAT_ASTC_12x12_SRGB_BLOCK
+  , FORMAT_A8_UNORM_KHR
+  , FORMAT_A1B5G5R5_UNORM_PACK16_KHR
   , FORMAT_R16G16_S10_5_NV
   , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
   , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
@@ -2517,6 +2534,11 @@
   , (FORMAT_ASTC_12x10_SRGB_BLOCK, "ASTC_12x10_SRGB_BLOCK")
   , (FORMAT_ASTC_12x12_UNORM_BLOCK, "ASTC_12x12_UNORM_BLOCK")
   , (FORMAT_ASTC_12x12_SRGB_BLOCK, "ASTC_12x12_SRGB_BLOCK")
+  , (FORMAT_A8_UNORM_KHR, "A8_UNORM_KHR")
+  ,
+    ( FORMAT_A1B5G5R5_UNORM_PACK16_KHR
+    , "A1B5G5R5_UNORM_PACK16_KHR"
+    )
   , (FORMAT_R16G16_S10_5_NV, "R16G16_S10_5_NV")
   ,
     ( FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
diff --git a/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs b/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs
--- a/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs
@@ -224,8 +224,9 @@
 -- -   'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies
 --     that an image view /can/ be used as a
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
---     An implementation /must/ not set this feature for formats with
---     numeric type other than @*UINT@, or set it as a buffer feature.
+--     An implementation /must/ not set this feature for formats with a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat numeric format>
+--     other than @UINT@, or set it as a buffer feature.
 --
 -- -   @VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR@ specifies that an
 --     image view with this format /can/ be used as a
@@ -403,8 +404,9 @@
 -- | 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that
 -- an image view /can/ be used as a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
--- An implementation /must/ not set this feature for formats with numeric
--- type other than @*UINT@, or set it as a buffer feature.
+-- An implementation /must/ not set this feature for formats with a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat numeric format>
+-- other than @UINT@, or set it as a buffer feature.
 pattern FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits 0x40000000
 
 -- | 'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image
diff --git a/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot b/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot
@@ -0,0 +1,12 @@
+{-# language CPP #-}
+-- No documentation found for Chapter "ImageAspectFlagBits"
+module Vulkan.Core10.Enums.ImageAspectFlagBits  ( ImageAspectFlags
+                                                , ImageAspectFlagBits
+                                                ) where
+
+
+
+type ImageAspectFlags = ImageAspectFlagBits
+
+data ImageAspectFlagBits
+
diff --git a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
@@ -90,10 +90,10 @@
 -- | 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM' specifies that an
 -- image /can/ be used in a render pass with non-zero
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>.
--- In a renderpass with non-zero offsets, fragment density map attachments,
--- input attachments, color attachments, depth\/stencil attachment, resolve
--- attachments, and preserve attachments /must/ be created with
--- 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'.
+-- In a render pass with non-zero offsets, fragment density map
+-- attachments, input attachments, color attachments, depth\/stencil
+-- attachment, resolve attachments, and preserve attachments /must/ be
+-- created with 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'.
 pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = ImageCreateFlagBits 0x00008000
 
 -- | 'IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT' specifies that the image /can/
diff --git a/src/Vulkan/Core10/Enums/ImageLayout.hs b/src/Vulkan/Core10/Enums/ImageLayout.hs
--- a/src/Vulkan/Core10/Enums/ImageLayout.hs
+++ b/src/Vulkan/Core10/Enums/ImageLayout.hs
@@ -70,10 +70,15 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT',
 -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT',
 -- 'Vulkan.Core10.Image.ImageCreateInfo',
 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',
 -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
diff --git a/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs b/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs
@@ -13,6 +13,7 @@
                                                                    , IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
                                                                    , IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI
                                                                    , IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
+                                                                   , IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
                                                                    , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
                                                                    , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
                                                                    , ..
@@ -111,6 +112,10 @@
 -- attachment) in the same render pass.
 pattern IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = ImageUsageFlagBits 0x00080000
 
+-- | 'IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' specifies that the image /can/ be
+-- used with host copy commands and host layout transitions.
+pattern IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = ImageUsageFlagBits 0x00400000
+
 -- | 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that
 -- the image /can/ be used to create a 'Vulkan.Core10.Handles.ImageView'
 -- suitable for use as a
@@ -174,6 +179,10 @@
   ,
     ( IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
     , "ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"
+    )
+  ,
+    ( IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
+    , "HOST_TRANSFER_BIT_EXT"
     )
   ,
     ( IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
diff --git a/src/Vulkan/Core10/Enums/IndexType.hs b/src/Vulkan/Core10/Enums/IndexType.hs
--- a/src/Vulkan/Core10/Enums/IndexType.hs
+++ b/src/Vulkan/Core10/Enums/IndexType.hs
@@ -27,7 +27,8 @@
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
--- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'
 newtype IndexType = IndexType Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
diff --git a/src/Vulkan/Core10/Enums/ObjectType.hs b/src/Vulkan/Core10/Enums/ObjectType.hs
--- a/src/Vulkan/Core10/Enums/ObjectType.hs
+++ b/src/Vulkan/Core10/Enums/ObjectType.hs
@@ -65,93 +65,103 @@
 --
 -- \'
 --
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'ObjectType'                                  | Vulkan Handle Type                                        |
--- +===============================================+===========================================================+
--- | 'OBJECT_TYPE_UNKNOWN'                         | Unknown\/Undefined Handle                                 |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_INSTANCE'                        | 'Vulkan.Core10.Handles.Instance'                          |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_PHYSICAL_DEVICE'                 | 'Vulkan.Core10.Handles.PhysicalDevice'                    |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DEVICE'                          | 'Vulkan.Core10.Handles.Device'                            |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_QUEUE'                           | 'Vulkan.Core10.Handles.Queue'                             |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_SEMAPHORE'                       | 'Vulkan.Core10.Handles.Semaphore'                         |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_COMMAND_BUFFER'                  | 'Vulkan.Core10.Handles.CommandBuffer'                     |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_FENCE'                           | 'Vulkan.Core10.Handles.Fence'                             |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DEVICE_MEMORY'                   | 'Vulkan.Core10.Handles.DeviceMemory'                      |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_BUFFER'                          | 'Vulkan.Core10.Handles.Buffer'                            |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_IMAGE'                           | 'Vulkan.Core10.Handles.Image'                             |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_EVENT'                           | 'Vulkan.Core10.Handles.Event'                             |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_QUERY_POOL'                      | 'Vulkan.Core10.Handles.QueryPool'                         |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_BUFFER_VIEW'                     | 'Vulkan.Core10.Handles.BufferView'                        |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_IMAGE_VIEW'                      | 'Vulkan.Core10.Handles.ImageView'                         |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_SHADER_MODULE'                   | 'Vulkan.Core10.Handles.ShaderModule'                      |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_PIPELINE_CACHE'                  | 'Vulkan.Core10.Handles.PipelineCache'                     |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_PIPELINE_LAYOUT'                 | 'Vulkan.Core10.Handles.PipelineLayout'                    |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_RENDER_PASS'                     | 'Vulkan.Core10.Handles.RenderPass'                        |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_PIPELINE'                        | 'Vulkan.Core10.Handles.Pipeline'                          |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT'           | 'Vulkan.Core10.Handles.DescriptorSetLayout'               |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_SAMPLER'                         | 'Vulkan.Core10.Handles.Sampler'                           |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DESCRIPTOR_POOL'                 | 'Vulkan.Core10.Handles.DescriptorPool'                    |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DESCRIPTOR_SET'                  | 'Vulkan.Core10.Handles.DescriptorSet'                     |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_FRAMEBUFFER'                     | 'Vulkan.Core10.Handles.Framebuffer'                       |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_COMMAND_POOL'                    | 'Vulkan.Core10.Handles.CommandPool'                       |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION'        | 'Vulkan.Core11.Handles.SamplerYcbcrConversion'            |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE'      | 'Vulkan.Core11.Handles.DescriptorUpdateTemplate'          |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_SURFACE_KHR'                     | 'Vulkan.Extensions.Handles.SurfaceKHR'                    |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_SWAPCHAIN_KHR'                   | 'Vulkan.Extensions.Handles.SwapchainKHR'                  |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DISPLAY_KHR'                     | 'Vulkan.Extensions.Handles.DisplayKHR'                    |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DISPLAY_MODE_KHR'                | 'Vulkan.Extensions.Handles.DisplayModeKHR'                |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT'       | 'Vulkan.Extensions.Handles.DebugReportCallbackEXT'        |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV'     | 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'      |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT'       | 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT'        |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_VALIDATION_CACHE_EXT'            | 'Vulkan.Extensions.Handles.ValidationCacheEXT'            |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_NV'       | 'Vulkan.Extensions.Handles.AccelerationStructureNV'       |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR'      | 'Vulkan.Extensions.Handles.AccelerationStructureKHR'      |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL' | 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL' |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_DEFERRED_OPERATION_KHR'          | 'Vulkan.Extensions.Handles.DeferredOperationKHR'          |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT'               | 'Vulkan.Core13.Handles.PrivateDataSlot'                   |
--- +-----------------------------------------------+-----------------------------------------------------------+
--- | 'OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV'         | 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'          |
--- +-----------------------------------------------+-----------------------------------------------------------+
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'ObjectType'                                  | Vulkan Handle Type                                                                                                                      |
+-- +===============================================+=========================================================================================================================================+
+-- | 'OBJECT_TYPE_UNKNOWN'                         | Unknown\/Undefined Handle                                                                                                               |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_INSTANCE'                        | 'Vulkan.Core10.Handles.Instance'                                                                                                        |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_PHYSICAL_DEVICE'                 | 'Vulkan.Core10.Handles.PhysicalDevice'                                                                                                  |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DEVICE'                          | 'Vulkan.Core10.Handles.Device'                                                                                                          |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_QUEUE'                           | 'Vulkan.Core10.Handles.Queue'                                                                                                           |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SEMAPHORE'                       | 'Vulkan.Core10.Handles.Semaphore'                                                                                                       |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_COMMAND_BUFFER'                  | 'Vulkan.Core10.Handles.CommandBuffer'                                                                                                   |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_FENCE'                           | 'Vulkan.Core10.Handles.Fence'                                                                                                           |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DEVICE_MEMORY'                   | 'Vulkan.Core10.Handles.DeviceMemory'                                                                                                    |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_BUFFER'                          | 'Vulkan.Core10.Handles.Buffer'                                                                                                          |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_IMAGE'                           | 'Vulkan.Core10.Handles.Image'                                                                                                           |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_EVENT'                           | 'Vulkan.Core10.Handles.Event'                                                                                                           |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_QUERY_POOL'                      | 'Vulkan.Core10.Handles.QueryPool'                                                                                                       |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_BUFFER_VIEW'                     | 'Vulkan.Core10.Handles.BufferView'                                                                                                      |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_IMAGE_VIEW'                      | 'Vulkan.Core10.Handles.ImageView'                                                                                                       |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SHADER_MODULE'                   | 'Vulkan.Core10.Handles.ShaderModule'                                                                                                    |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_PIPELINE_CACHE'                  | 'Vulkan.Core10.Handles.PipelineCache'                                                                                                   |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_PIPELINE_LAYOUT'                 | 'Vulkan.Core10.Handles.PipelineLayout'                                                                                                  |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_RENDER_PASS'                     | 'Vulkan.Core10.Handles.RenderPass'                                                                                                      |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_PIPELINE'                        | 'Vulkan.Core10.Handles.Pipeline'                                                                                                        |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT'           | 'Vulkan.Core10.Handles.DescriptorSetLayout'                                                                                             |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SAMPLER'                         | 'Vulkan.Core10.Handles.Sampler'                                                                                                         |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DESCRIPTOR_POOL'                 | 'Vulkan.Core10.Handles.DescriptorPool'                                                                                                  |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DESCRIPTOR_SET'                  | 'Vulkan.Core10.Handles.DescriptorSet'                                                                                                   |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_FRAMEBUFFER'                     | 'Vulkan.Core10.Handles.Framebuffer'                                                                                                     |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_COMMAND_POOL'                    | 'Vulkan.Core10.Handles.CommandPool'                                                                                                     |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION'        | 'Vulkan.Core11.Handles.SamplerYcbcrConversion'                                                                                          |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE'      | 'Vulkan.Core11.Handles.DescriptorUpdateTemplate'                                                                                        |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT'               | 'Vulkan.Core13.Handles.PrivateDataSlot'                                                                                                 |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SURFACE_KHR'                     | 'Vulkan.Extensions.Handles.SurfaceKHR'                                                                                                  |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SWAPCHAIN_KHR'                   | 'Vulkan.Extensions.Handles.SwapchainKHR'                                                                                                |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DISPLAY_KHR'                     | 'Vulkan.Extensions.Handles.DisplayKHR'                                                                                                  |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DISPLAY_MODE_KHR'                | 'Vulkan.Extensions.Handles.DisplayModeKHR'                                                                                              |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT'       | 'Vulkan.Extensions.Handles.DebugReportCallbackEXT'                                                                                      |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | @VK_OBJECT_TYPE_VIDEO_SESSION_KHR@            | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionKHR VkVideoSessionKHR>                     |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | @VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR@ | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersKHR VkVideoSessionParametersKHR> |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT'       | 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT'                                                                                      |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR'      | 'Vulkan.Extensions.Handles.AccelerationStructureKHR'                                                                                    |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_VALIDATION_CACHE_EXT'            | 'Vulkan.Extensions.Handles.ValidationCacheEXT'                                                                                          |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_NV'       | 'Vulkan.Extensions.Handles.AccelerationStructureNV'                                                                                     |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL' | 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL'                                                                               |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_DEFERRED_OPERATION_KHR'          | 'Vulkan.Extensions.Handles.DeferredOperationKHR'                                                                                        |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV'     | 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'                                                                                    |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA'       | 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA'                                                                                     |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_MICROMAP_EXT'                    | 'Vulkan.Extensions.Handles.MicromapEXT'                                                                                                 |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV'         | 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'                                                                                        |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
+-- | 'OBJECT_TYPE_SHADER_EXT'                      | 'Vulkan.Extensions.Handles.ShaderEXT'                                                                                                   |
+-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- 'ObjectType' and Vulkan Handle Relationship
 --
diff --git a/src/Vulkan/Core10/Enums/PipelineBindPoint.hs b/src/Vulkan/Core10/Enums/PipelineBindPoint.hs
--- a/src/Vulkan/Core10/Enums/PipelineBindPoint.hs
+++ b/src/Vulkan/Core10/Enums/PipelineBindPoint.hs
@@ -4,6 +4,7 @@
                                                                 , PIPELINE_BIND_POINT_COMPUTE
                                                                 , PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
                                                                 , PIPELINE_BIND_POINT_RAY_TRACING_KHR
+                                                                , PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX
                                                                 , ..
                                                                 )) where
 
@@ -26,6 +27,7 @@
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV',
 -- 'Vulkan.Core10.Pass.SubpassDescription',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',
@@ -33,7 +35,8 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',
 -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR',
--- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT'
+-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV'
 newtype PipelineBindPoint = PipelineBindPoint Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
@@ -51,11 +54,16 @@
 -- pipeline.
 pattern PIPELINE_BIND_POINT_RAY_TRACING_KHR = PipelineBindPoint 1000165000
 
+-- | 'PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX' specifies binding as an
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs execution graph pipeline>.
+pattern PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = PipelineBindPoint 1000134000
+
 {-# COMPLETE
   PIPELINE_BIND_POINT_GRAPHICS
   , PIPELINE_BIND_POINT_COMPUTE
   , PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
-  , PIPELINE_BIND_POINT_RAY_TRACING_KHR ::
+  , PIPELINE_BIND_POINT_RAY_TRACING_KHR
+  , PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX ::
     PipelineBindPoint
   #-}
 
@@ -76,6 +84,10 @@
   ,
     ( PIPELINE_BIND_POINT_RAY_TRACING_KHR
     , "RAY_TRACING_KHR"
+    )
+  ,
+    ( PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX
+    , "EXECUTION_GRAPH_AMDX"
     )
   ]
 
diff --git a/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs b/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs
--- a/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs
+++ b/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs
@@ -28,7 +28,8 @@
 -- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error
 
 -- | 'PIPELINE_CACHE_HEADER_VERSION_ONE' specifies version one of the
--- pipeline cache.
+-- pipeline cache, described by
+-- 'Vulkan.Core10.OtherTypes.PipelineCacheHeaderVersionOne'.
 pattern PIPELINE_CACHE_HEADER_VERSION_ONE = PipelineCacheHeaderVersion 1
 
 -- No documentation found for Nested "VkPipelineCacheHeaderVersion" "VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE"
diff --git a/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs
@@ -22,6 +22,44 @@
 -- | VkPipelineColorBlendStateCreateFlagBits - Bitmask specifying additional
 -- parameters of an image
 --
+-- = Description
+--
+-- -   'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
+--     indicates that access to color and input attachments will have
+--     implicit framebuffer-local memory dependencies, allowing
+--     applications to express custom blending operations in a fragment
+--     shader.
+--
+-- When
+-- 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
+-- is included in a pipeline, it forms a framebuffer-local memory
+-- dependency for each fragment generated by draw commands for that
+-- pipeline with the following scopes:
+--
+-- -   The first
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+--     includes the
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
+--     pipeline stage executed by all previous fragments (as defined by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>)
+--     in the corresponding
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer regions>
+--     including those generated by the same draw command.
+--
+-- -   The second
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+--     includes the
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
+--     pipeline stage executed by the generated fragment.
+--
+-- -   The first
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+--     includes all writes to color attachments.
+--
+-- -   The second
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+--     includes all reads from input attachments.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>,
@@ -29,12 +67,7 @@
 newtype PipelineColorBlendStateCreateFlagBits = PipelineColorBlendStateCreateFlagBits Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
--- indicates that access to color and input attachments will have implicit
--- framebuffer-local memory dependencies, allowing applications to express
--- custom blending operations in a fragment shader. See
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>
--- for more information.
+-- No documentation found for Nested "VkPipelineColorBlendStateCreateFlagBits" "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"
 pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = PipelineColorBlendStateCreateFlagBits 0x00000001
 
 conNamePipelineColorBlendStateCreateFlagBits :: String
diff --git a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
@@ -191,11 +191,15 @@
 --
 -- -   'PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies
 --     that the pipeline /may/ be used with an attachment feedback loop
---     including color attachments.
+--     including color attachments. It is ignored if
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     is set in @pDynamicStates@.
 --
 -- -   'PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
 --     specifies that the pipeline /may/ be used with an attachment
---     feedback loop including depth-stencil attachments.
+--     feedback loop including depth-stencil attachments. It is ignored if
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     is set in @pDynamicStates@.
 --
 -- -   'PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' specifies
 --     that the pipeline /can/ be used with acceleration structures which
diff --git a/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs
@@ -23,6 +23,85 @@
 -- | VkPipelineDepthStencilStateCreateFlagBits - Bitmask specifying
 -- additional depth\/stencil state information.
 --
+-- = Description
+--
+-- -   'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
+--     indicates that access to the depth aspects of depth\/stencil and
+--     input attachments will have implicit framebuffer-local memory
+--     dependencies.
+--
+-- -   'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
+--     indicates that access to the stencil aspects of depth\/stencil and
+--     input attachments will have implicit framebuffer-local memory
+--     dependencies.
+--
+-- When
+-- 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
+-- is included in a pipeline, it forms a framebuffer-local memory
+-- dependency for each fragment generated by draw commands for that
+-- pipeline with the following scopes:
+--
+-- -   The first
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+--     includes
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
+--     and
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
+--     pipeline stages executed by all previous fragments (as defined by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>)
+--     in the corresponding
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer regions>
+--     including those generated by the same draw command.
+--
+-- -   The second
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+--     includes
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
+--     stage executed by the generated fragment.
+--
+-- -   The first
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+--     includes all writes to the depth aspect of depth\/stencil
+--     attachments.
+--
+-- -   The second
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+--     includes all reads from the depth aspect of input attachments.
+--
+-- When
+-- 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
+-- is included in a pipeline, it forms a framebuffer-local memory
+-- dependency for each fragment generated by draw commands for that
+-- pipeline with the following scopes:
+--
+-- -   The first
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+--     includes
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
+--     pipeline stages executed by all previous fragments (as defined by
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>)
+--     in the corresponding
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer regions>
+--     including those generated by the same draw command.
+--
+-- -   The second
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
+--     includes
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
+--     and
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
+--     pipeline stages executed by the generated fragment.
+--
+-- -   The first
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+--     includes all writes to the stencil aspect of depth\/stencil
+--     attachments.
+--
+-- -   The second
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
+--     includes all reads from the stencil aspect of input attachments.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>,
@@ -30,20 +109,10 @@
 newtype PipelineDepthStencilStateCreateFlagBits = PipelineDepthStencilStateCreateFlagBits Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
--- indicates that access to the stencil aspects of depth\/stencil and input
--- attachments will have implicit framebuffer-local memory dependencies.
--- See
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>
--- for more information.
+-- No documentation found for Nested "VkPipelineDepthStencilStateCreateFlagBits" "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"
 pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000002
 
--- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
--- indicates that access to the depth aspects of depth\/stencil and input
--- attachments will have implicit framebuffer-local memory dependencies.
--- See
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>
--- for more information.
+-- No documentation found for Nested "VkPipelineDepthStencilStateCreateFlagBits" "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"
 pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000001
 
 conNamePipelineDepthStencilStateCreateFlagBits :: String
diff --git a/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs
@@ -52,7 +52,7 @@
 
 -- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' specifies that
 -- the subgroup sizes /must/ be launched with all invocations active in the
--- compute stage.
+-- task, mesh, or compute stage.
 pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = PipelineShaderStageCreateFlagBits 0x00000002
 
 -- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' specifies
diff --git a/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs
@@ -102,24 +102,29 @@
 -- | 'PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the
 -- pipeline where early fragment tests (depth and stencil tests before
 -- fragment shading) are performed. This stage also includes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>
 -- for framebuffer attachments with a depth\/stencil format.
 pattern PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = PipelineStageFlagBits 0x00000100
 
 -- | 'PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the
 -- pipeline where late fragment tests (depth and stencil tests after
 -- fragment shading) are performed. This stage also includes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations render pass store operations>
 -- for framebuffer attachments with a depth\/stencil format.
 pattern PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits 0x00000200
 
 -- | 'PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' specifies the stage of the
 -- pipeline after blending where the final color values are output from the
--- pipeline. This stage also includes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>,
--- multisample resolve operations for framebuffer attachments with a color
--- or depth\/stencil format, and
--- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.
+-- pipeline. This stage includes
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
+-- render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>
+-- operations for color attachments,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations render pass multisample resolve operations>,
+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.
 pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits 0x00000400
 
 -- | 'PIPELINE_STAGE_COMPUTE_SHADER_BIT' specifies the execution of a compute
diff --git a/src/Vulkan/Core10/Enums/PolygonMode.hs b/src/Vulkan/Core10/Enums/PolygonMode.hs
--- a/src/Vulkan/Core10/Enums/PolygonMode.hs
+++ b/src/Vulkan/Core10/Enums/PolygonMode.hs
@@ -24,6 +24,20 @@
 -- particular, a polygon’s vertices are shaded and the polygon is clipped
 -- and possibly culled before these modes are applied.
 --
+-- If
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR'::@polygonModePointSize@
+-- is set to 'Vulkan.Core10.FundamentalTypes.TRUE', the point size of the
+-- final rasterization of polygons is taken from @PointSize@ when
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode>
+-- is 'POLYGON_MODE_POINT'.
+--
+-- Otherwise, if
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR'::@polygonModePointSize@
+-- is set to 'Vulkan.Core10.FundamentalTypes.FALSE', the point size of the
+-- final rasterization of polygons is 1.0 when
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode>
+-- is 'POLYGON_MODE_POINT'.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
diff --git a/src/Vulkan/Core10/Enums/Result.hs b/src/Vulkan/Core10/Enums/Result.hs
--- a/src/Vulkan/Core10/Enums/Result.hs
+++ b/src/Vulkan/Core10/Enums/Result.hs
@@ -91,6 +91,11 @@
 -- possible. If no issues are identified it could be an implementation
 -- issue, and the implementor should be contacted for support.
 --
+-- Any command returning a 'Result' /may/ return
+-- 'ERROR_VALIDATION_FAILED_EXT' if a violation of valid usage is detected,
+-- even though commands do not explicitly list this as a possible return
+-- code.
+--
 -- Performance-critical commands generally do not have return codes. If a
 -- runtime error occurs in such commands, the implementation will defer
 -- reporting the error until a specified point. For commands that record
@@ -218,7 +223,8 @@
 -- @VK_EXT_debug_report@ if enabled.
 pattern ERROR_INVALID_SHADER_NV = Result (-1000012000)
 
--- No documentation found for Nested "VkResult" "VK_ERROR_VALIDATION_FAILED_EXT"
+-- | 'ERROR_VALIDATION_FAILED_EXT' A command failed because invalid usage was
+-- detected by the implementation or a validation-layer.
 pattern ERROR_VALIDATION_FAILED_EXT = Result (-1000011001)
 
 -- | 'ERROR_INCOMPATIBLE_DISPLAY_KHR' The display used by a swapchain does
diff --git a/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs b/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs
@@ -47,7 +47,9 @@
 -- | #samplers-imageprocessingsampler#
 -- 'SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' specifies that the sampler
 -- will read from images using only @OpImageWeightedSampleQCOM@,
--- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchSSDQCOM@, or
 -- @OpImageBlockMatchSADQCOM@.
 pattern SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = SamplerCreateFlagBits 0x00000010
 
diff --git a/src/Vulkan/Core10/Enums/StructureType.hs b/src/Vulkan/Core10/Enums/StructureType.hs
--- a/src/Vulkan/Core10/Enums/StructureType.hs
+++ b/src/Vulkan/Core10/Enums/StructureType.hs
@@ -49,13 +49,45 @@
                                                         , STRUCTURE_TYPE_MEMORY_BARRIER
                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
+                                                        , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
+                                                        , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
+                                                        , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
+                                                        , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
+                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM
+                                                        , STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM
+                                                        , STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM
+                                                        , STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM
                                                         , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
+                                                        , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
+                                                        , STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
+                                                        , STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV
+                                                        , STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV
+                                                        , STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV
+                                                        , STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV
+                                                        , STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV
+                                                        , STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV
+                                                        , STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV
+                                                        , STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
                                                         , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
@@ -68,6 +100,18 @@
                                                         , STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
+                                                        , STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
+                                                        , STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
+                                                        , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
+                                                        , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
+                                                        , STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
+                                                        , STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
+                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
                                                         , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
@@ -90,11 +134,17 @@
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
                                                         , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
+                                                        , STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV
+                                                        , STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
@@ -144,6 +194,8 @@
                                                         , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
                                                         , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
@@ -182,8 +234,6 @@
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
                                                         , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
-                                                        , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
-                                                        , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
                                                         , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
@@ -250,6 +300,9 @@
                                                         , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
                                                         , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT
+                                                        , STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
                                                         , STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
@@ -275,6 +328,16 @@
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
                                                         , STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR
                                                         , STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR
+                                                        , STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
+                                                        , STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
+                                                        , STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
+                                                        , STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
+                                                        , STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
+                                                        , STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
+                                                        , STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
+                                                        , STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
                                                         , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
@@ -419,6 +482,11 @@
                                                         , STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
                                                         , STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
+                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
+                                                        , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX
+                                                        , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX
                                                         , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
                                                         , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
                                                         , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
@@ -756,6 +824,7 @@
 -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID',
 -- 'Vulkan.Extensions.VK_KHR_android_surface.AndroidSurfaceCreateInfoKHR',
@@ -776,6 +845,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>,
+-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.BlitImageCubicWeightsInfoQCOM',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.BufferCaptureDescriptorDataInfoEXT',
 -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA',
@@ -793,6 +863,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR',
 -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV',
@@ -807,7 +878,9 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo',
 -- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo',
 -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.CooperativeMatrixPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.CooperativeMatrixPropertiesNV',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureToMemoryInfoKHR',
@@ -817,7 +890,10 @@
 -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyMemoryToAccelerationStructureInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMemoryToMicromapInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapToMemoryInfoEXT',
@@ -838,6 +914,8 @@
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo',
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT',
@@ -870,6 +948,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupSwapchainCreateInfoKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.DeviceImageSubresourceInfoKHR',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.DeviceMemoryOpaqueCaptureAddressInfo',
 -- 'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD',
 -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',
@@ -894,6 +973,8 @@
 -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT',
 -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',
 -- 'Vulkan.Core10.Event.EventCreateInfo',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineScratchSizeAMDX',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo',
 -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ExportFenceWin32HandleInfoKHR',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo',
@@ -913,7 +994,9 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties',
+-- 'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo',
 -- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV',
@@ -925,6 +1008,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.FormatProperties3',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo',
 -- 'Vulkan.Core10.Pass.FramebufferCreateInfo',
@@ -934,12 +1018,15 @@
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.GetLatencyMarkerInfoNV',
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT',
 -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT',
 -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT',
@@ -962,8 +1049,9 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageSubresource2EXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.ImageSubresource2KHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT',
 -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageViewCaptureDescriptorDataInfoEXT',
@@ -986,6 +1074,7 @@
 -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ImportScreenBufferInfoQNX',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',
 -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',
@@ -993,6 +1082,11 @@
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.InitializePerformanceApiInfoINTEL',
 -- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepInfoNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepModeInfoNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencyTimingsFrameReportNV',
 -- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK',
 -- 'Vulkan.Core10.Memory.MappedMemoryRange',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',
@@ -1012,6 +1106,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',
 -- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT',
 -- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryUnmapInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR',
 -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA',
@@ -1031,6 +1126,7 @@
 -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatPropertiesNV',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreatePrivateDataInfoNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.OutOfBandQueueTypeInfoNV',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceConfigurationAcquireInfoINTEL',
 -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterDescriptionKHR',
 -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR',
@@ -1046,6 +1142,7 @@
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR',
 -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT',
 -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',
+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT',
@@ -1059,15 +1156,20 @@
 -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV',
 -- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV',
+-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_clamp.PhysicalDeviceCubicClampFeaturesQCOM',
+-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.PhysicalDeviceCubicWeightsFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT',
@@ -1077,7 +1179,9 @@
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties',
+-- 'Vulkan.Extensions.VK_NV_descriptor_pool_overallocation.PhysicalDeviceDescriptorPoolOverallocationFeaturesNV',
 -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',
@@ -1088,16 +1192,22 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties',
 -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures',
+-- 'Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments.PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
+-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo',
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolveFeaturesANDROID',
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo',
 -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo',
 -- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
@@ -1116,10 +1226,13 @@
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_frame_boundary.PhysicalDeviceFrameBoundaryFeaturesEXT',
 -- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',
 -- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',
@@ -1127,6 +1240,8 @@
 -- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures',
@@ -1139,6 +1254,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties',
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI',
+-- 'Vulkan.Extensions.VK_MSFT_layered_driver.PhysicalDeviceLayeredDriverPropertiesMSFT',
 -- 'Vulkan.Extensions.VK_EXT_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT',
@@ -1146,6 +1262,8 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5FeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR',
 -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV',
@@ -1164,6 +1282,8 @@
 -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports.PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties',
 -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapPropertiesEXT',
@@ -1204,6 +1324,7 @@
 -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',
 -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
@@ -1225,6 +1346,8 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',
 -- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueueFeaturesAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueuePropertiesAMDX',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features',
 -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',
@@ -1268,6 +1391,7 @@
 -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>,
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
@@ -1278,6 +1402,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',
 -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.PhysicalDeviceYcbcrDegammaFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures',
 -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo',
@@ -1288,6 +1413,7 @@
 -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',
@@ -1298,6 +1424,7 @@
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableStatisticKHR',
 -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR',
 -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo',
 -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo',
@@ -1317,6 +1444,7 @@
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT',
 -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PipelineShaderStageNodeCreateInfoAMDX',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo',
 -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo',
@@ -1365,20 +1493,26 @@
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.RenderingAreaInfoKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',
 -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM',
 -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.SamplerCaptureDescriptorDataInfoEXT',
 -- 'Vulkan.Core10.Sampler.SamplerCreateInfo',
+-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM',
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',
+-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferPropertiesQNX',
 -- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateInfoQNX',
 -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',
@@ -1388,6 +1522,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.SetLatencyMarkerInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT',
 -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.ShaderModuleIdentifierEXT',
@@ -1406,7 +1541,8 @@
 -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',
 -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT',
 -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR',
 -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',
 -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR',
 -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',
@@ -1421,6 +1557,7 @@
 -- 'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.SwapchainLatencyCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModeInfoEXT',
@@ -1457,25 +1594,39 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXT VkVideoEncodeH264DpbSlotInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoEXT VkVideoEncodeH264GopRemainingFrameInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoEXT VkVideoEncodeH264NaluSliceInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoEXT VkVideoEncodeH264PictureInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXT VkVideoEncodeH264ProfileInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QualityLevelPropertiesEXT VkVideoEncodeH264QualityLevelPropertiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoEXT VkVideoEncodeH264RateControlInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT VkVideoEncodeH264RateControlLayerInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT VkVideoEncodeH264SessionParametersAddInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT VkVideoEncodeH264SessionParametersCreateInfoEXT>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264VclFrameInfoEXT VkVideoEncodeH264VclFrameInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersFeedbackInfoEXT VkVideoEncodeH264SessionParametersFeedbackInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersGetInfoEXT VkVideoEncodeH264SessionParametersGetInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoEXT VkVideoEncodeH265DpbSlotInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265GopRemainingFrameInfoEXT VkVideoEncodeH265GopRemainingFrameInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoEXT VkVideoEncodeH265NaluSliceSegmentInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265PictureInfoEXT VkVideoEncodeH265PictureInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXT VkVideoEncodeH265ProfileInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265QualityLevelPropertiesEXT VkVideoEncodeH265QualityLevelPropertiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoEXT VkVideoEncodeH265RateControlInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionCreateInfoEXT VkVideoEncodeH265SessionCreateInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoEXT VkVideoEncodeH265SessionParametersAddInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoEXT VkVideoEncodeH265SessionParametersCreateInfoEXT>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265VclFrameInfoEXT VkVideoEncodeH265VclFrameInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersFeedbackInfoEXT VkVideoEncodeH265SessionParametersFeedbackInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoEXT VkVideoEncodeH265SessionParametersGetInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQualityLevelInfoKHR VkVideoEncodeQualityLevelInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQualityLevelPropertiesKHR VkVideoEncodeQualityLevelPropertiesKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHR VkVideoEncodeRateControlInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR VkVideoEncodeRateControlLayerInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeSessionParametersFeedbackInfoKHR VkVideoEncodeSessionParametersFeedbackInfoKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeSessionParametersGetInfoKHR VkVideoEncodeSessionParametersGetInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHR VkVideoEncodeUsageInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHR VkVideoEndCodingInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,
@@ -1647,12 +1798,102 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"
 pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = StructureType 1000546000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = StructureType 1000530000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = StructureType 1000529004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX"
+pattern STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = StructureType 1000529003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX"
+pattern STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = StructureType 1000529002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX"
+pattern STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = StructureType 1000529001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX"
+pattern STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = StructureType 1000529000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000524000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = StructureType 1000521000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM"
+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = StructureType 1000520001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = StructureType 1000520000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM"
+pattern STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = StructureType 1000519002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = StructureType 1000519001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM"
+pattern STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = StructureType 1000519000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM"
+pattern STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = StructureType 1000518002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = StructureType 1000518001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = StructureType 1000518000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM"
 pattern STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = StructureType 1000510001
 
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = StructureType 1000510000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = StructureType 1000506002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = StructureType 1000506001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = StructureType 1000506000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV"
+pattern STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = StructureType 1000505008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV"
+pattern STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = StructureType 1000505007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV"
+pattern STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = StructureType 1000505006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV"
+pattern STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = StructureType 1000505005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"
+pattern STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = StructureType 1000505004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"
+pattern STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = StructureType 1000505003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV"
+pattern STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = StructureType 1000505002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"
+pattern STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = StructureType 1000505001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"
+pattern STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = StructureType 1000505000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = StructureType 1000499000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = StructureType 1000498000
 
@@ -1668,6 +1909,12 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = StructureType 1000351000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = StructureType 1000492001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = StructureType 1000492000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = StructureType 1000490001
 
@@ -1704,6 +1951,42 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = StructureType 1000482000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = StructureType 1000481000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = StructureType 1000470006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = StructureType 1000470005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR"
+pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = StructureType 1000338003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR"
+pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = StructureType 1000338002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"
+pattern STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = StructureType 1000470004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR"
+pattern STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = StructureType 1000470003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = StructureType 1000470001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = StructureType 1000470000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID"
+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = StructureType 1000468002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = StructureType 1000468001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = StructureType 1000468000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = StructureType 1000466000
 
@@ -1770,6 +2053,15 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = StructureType 1000455000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT"
+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = StructureType 1000453000
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = StructureType 1000451001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = StructureType 1000451000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"
 pattern STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = StructureType 1000440002
 
@@ -1785,6 +2077,15 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = StructureType 1000430000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV"
+pattern STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = StructureType 1000428002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV"
+pattern STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = StructureType 1000428001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = StructureType 1000428000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = StructureType 1000427001
 
@@ -1932,6 +2233,12 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = StructureType 1000376000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT"
+pattern STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = StructureType 1000375001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = StructureType 1000375000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = StructureType 1000372001
 
@@ -2046,12 +2353,6 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"
 pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = StructureType 1000338004
 
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"
-pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = StructureType 1000338003
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"
-pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = StructureType 1000338002
-
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"
 pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = StructureType 1000338001
 
@@ -2250,6 +2551,15 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = StructureType 1000284000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT"
+pattern STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = StructureType 1000283002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT"
+pattern STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = StructureType 1000283001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = StructureType 1000283000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"
 pattern STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = StructureType 1000282001
 
@@ -2325,6 +2635,36 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR"
 pattern STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = StructureType 1000271000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"
+pattern STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = StructureType 1000270009
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"
+pattern STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = StructureType 1000270008
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT"
+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = StructureType 1000270007
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT"
+pattern STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = StructureType 1000270006
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT"
+pattern STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = StructureType 1000270005
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT"
+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = StructureType 1000270004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT"
+pattern STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = StructureType 1000270003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT"
+pattern STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = StructureType 1000270002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = StructureType 1000270001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = StructureType 1000270000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"
 pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = StructureType 1000269005
 
@@ -2757,6 +3097,21 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"
 pattern STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = StructureType 1000143000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX"
+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = StructureType 1000134004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX"
+pattern STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = StructureType 1000134003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX"
+pattern STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = StructureType 1000134002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = StructureType 1000134001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = StructureType 1000134000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"
 pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = StructureType 1000129006
 
@@ -3701,13 +4056,45 @@
   , STRUCTURE_TYPE_MEMORY_BARRIER
   , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
   , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
+  , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
+  , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
+  , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
+  , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM
+  , STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM
+  , STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM
+  , STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM
   , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
+  , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
+  , STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
+  , STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV
+  , STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV
+  , STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV
+  , STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV
+  , STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV
+  , STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV
+  , STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV
+  , STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
   , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
@@ -3720,6 +4107,18 @@
   , STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
+  , STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
+  , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
+  , STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
+  , STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
   , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
@@ -3742,11 +4141,17 @@
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
   , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
+  , STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV
+  , STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
@@ -3796,6 +4201,8 @@
   , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
   , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
+  , STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
   , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
@@ -3834,8 +4241,6 @@
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
   , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
-  , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
-  , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
   , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
@@ -3902,6 +4307,9 @@
   , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
   , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
+  , STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT
+  , STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
   , STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
   , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
@@ -3927,6 +4335,16 @@
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
   , STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR
   , STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR
+  , STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
+  , STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
+  , STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
+  , STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
+  , STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
+  , STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
+  , STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
+  , STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
   , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
   , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
   , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
@@ -4071,6 +4489,11 @@
   , STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
   , STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
   , STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
+  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
+  , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX
+  , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX
   , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
   , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
   , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
@@ -4565,6 +4988,74 @@
     , "LOADER_DEVICE_CREATE_INFO"
     )
   ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+    , "PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
+    , "PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
+    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
+    , "EXTERNAL_FORMAT_QNX"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
+    , "IMPORT_SCREEN_BUFFER_INFO_QNX"
+    )
+  ,
+    ( STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
+    , "SCREEN_BUFFER_FORMAT_PROPERTIES_QNX"
+    )
+  ,
+    ( STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
+    , "SCREEN_BUFFER_PROPERTIES_QNX"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
+    , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
+    , "SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM
+    , "BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM
+    , "SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM
+    , "SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM
+    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM"
+    )
+  ,
     ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
     , "MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM"
     )
@@ -4573,6 +5064,58 @@
     , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM"
     )
   ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR
+    , "COOPERATIVE_MATRIX_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
+    , "LATENCY_SURFACE_CAPABILITIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV
+    , "SWAPCHAIN_LATENCY_CREATE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV
+    , "OUT_OF_BAND_QUEUE_TYPE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV
+    , "LATENCY_SUBMISSION_PRESENT_ID_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV
+    , "LATENCY_TIMINGS_FRAME_REPORT_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV
+    , "GET_LATENCY_MARKER_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV
+    , "SET_LATENCY_MARKER_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV
+    , "LATENCY_SLEEP_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV
+    , "LATENCY_SLEEP_MODE_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
     , "PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT"
     )
@@ -4593,6 +5136,14 @@
     , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"
     )
   ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
+    , "PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV
+    , "PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
     , "PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV"
     )
@@ -4641,6 +5192,54 @@
     , "PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT"
     )
   ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
+    , "PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
+    , "BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
+    , "PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
+    , "IMAGE_SUBRESOURCE_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
+    , "SUBRESOURCE_LAYOUT_2_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
+    , "DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
+    , "RENDERING_AREA_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
+    , "PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID
+    , "ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID
+    , "PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID
+    , "PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
     , "PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT"
     )
@@ -4729,6 +5328,18 @@
     , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT"
     )
   ,
+    ( STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT
+    , "EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
+    , "PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT"
+    )
+  ,
     ( STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
     , "IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"
     )
@@ -4749,6 +5360,18 @@
     , "PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"
     )
   ,
+    ( STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV
+    , "PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV
+    , "COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV
+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV
     , "PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV"
     )
@@ -4945,6 +5568,14 @@
     , "PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"
     )
   ,
+    ( STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
+    , "FRAME_BOUNDARY_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
     , "PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"
     )
@@ -5097,14 +5728,6 @@
     , "IMAGE_COMPRESSION_PROPERTIES_EXT"
     )
   ,
-    ( STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
-    , "IMAGE_SUBRESOURCE_2_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
-    , "SUBRESOURCE_LAYOUT_2_EXT"
-    )
-  ,
     ( STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
     , "IMAGE_COMPRESSION_CONTROL_EXT"
     )
@@ -5366,6 +5989,18 @@
     , "PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"
     )
   ,
+    ( STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT
+    , "DEPTH_BIAS_REPRESENTATION_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT
+    , "DEPTH_BIAS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
+    , "PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT"
+    )
+  ,
     ( STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
     , "RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"
     )
@@ -5466,6 +6101,46 @@
     , "MEMORY_MAP_INFO_KHR"
     )
   ,
+    ( STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
+    , "HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
+    , "SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
+    , "COPY_IMAGE_TO_IMAGE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
+    , "HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
+    , "COPY_MEMORY_TO_IMAGE_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
+    , "COPY_IMAGE_TO_MEMORY_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
+    , "IMAGE_TO_MEMORY_COPY_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
+    , "MEMORY_TO_IMAGE_COPY_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
+    , "PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
+    , "PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT"
+    )
+  ,
     ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
     , "PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"
     )
@@ -6034,6 +6709,26 @@
   ,
     ( STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
     , "SAMPLE_LOCATIONS_INFO_EXT"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
+    , "PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX
+    , "EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX"
+    )
+  ,
+    ( STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
+    , "EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX
+    , "PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX
+    , "PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX"
     )
   ,
     ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
diff --git a/src/Vulkan/Core10/Enums/SubpassContents.hs b/src/Vulkan/Core10/Enums/SubpassContents.hs
--- a/src/Vulkan/Core10/Enums/SubpassContents.hs
+++ b/src/Vulkan/Core10/Enums/SubpassContents.hs
@@ -2,6 +2,7 @@
 -- No documentation found for Chapter "SubpassContents"
 module Vulkan.Core10.Enums.SubpassContents  (SubpassContents( SUBPASS_CONTENTS_INLINE
                                                             , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
+                                                            , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
                                                             , ..
                                                             )) where
 
@@ -35,14 +36,21 @@
 -- are recorded in secondary command buffers that will be called from the
 -- primary command buffer, and
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' is the only
--- valid command on the command buffer until
+-- valid command in the command buffer until
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass' or
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass'.
 pattern SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = SubpassContents 1
 
+-- | 'SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT' specifies
+-- that the contents of the subpass /can/ be recorded both inline and in
+-- secondary command buffers executed from this command buffer with
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands'.
+pattern SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = SubpassContents 1000451000
+
 {-# COMPLETE
   SUBPASS_CONTENTS_INLINE
-  , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS ::
+  , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
+  , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT ::
     SubpassContents
   #-}
 
@@ -58,6 +66,10 @@
   ,
     ( SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
     , "SECONDARY_COMMAND_BUFFERS"
+    )
+  ,
+    ( SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
+    , "INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT"
     )
   ]
 
diff --git a/src/Vulkan/Core10/FundamentalTypes.hs b/src/Vulkan/Core10/FundamentalTypes.hs
--- a/src/Vulkan/Core10/FundamentalTypes.hs
+++ b/src/Vulkan/Core10/FundamentalTypes.hs
@@ -126,6 +126,8 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',
 -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind'
 data Offset3D = Offset3D
   { -- | @x@ is the x offset.
@@ -193,6 +195,7 @@
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV',
@@ -200,6 +203,7 @@
 -- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR',
 -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM',
 -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',
 -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR',
 -- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT',
@@ -207,11 +211,13 @@
 -- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR',
 -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',
--- 'Vulkan.Core10.Pass.getRenderAreaGranularity'
+-- 'Vulkan.Core10.Pass.getRenderAreaGranularity',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.getRenderingAreaGranularityKHR'
 data Extent2D = Extent2D
   { -- | @width@ is the width of the extent.
     width :: Word32
@@ -270,6 +276,8 @@
 -- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties',
 -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT',
 -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind',
@@ -415,14 +423,19 @@
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
 -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.CooperativeMatrixPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV',
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',
 -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',
 -- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT',
 -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepModeInfoNV',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',
@@ -436,6 +449,7 @@
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT',
 -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',
+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT',
@@ -448,12 +462,16 @@
 -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV',
+-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_clamp.PhysicalDeviceCubicClampFeaturesQCOM',
+-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.PhysicalDeviceCubicWeightsFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT',
@@ -462,19 +480,26 @@
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties',
+-- 'Vulkan.Extensions.VK_NV_descriptor_pool_overallocation.PhysicalDeviceDescriptorPoolOverallocationFeaturesNV',
 -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',
 -- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures',
+-- 'Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments.PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolveFeaturesANDROID',
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID',
 -- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
 -- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT',
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',
@@ -489,15 +514,19 @@
 -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
+-- 'Vulkan.Extensions.VK_EXT_frame_boundary.PhysicalDeviceFrameBoundaryFeaturesEXT',
 -- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',
 -- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures',
 -- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.PhysicalDeviceImageSlicedViewOf3DFeaturesEXT',
@@ -512,6 +541,8 @@
 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5FeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',
@@ -524,6 +555,7 @@
 -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports.PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT',
+-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV',
@@ -555,6 +587,7 @@
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
@@ -570,6 +603,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',
 -- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueueFeaturesAMDX',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features',
 -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV',
@@ -612,6 +646,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',
 -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.PhysicalDeviceYcbcrDegammaFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures',
 -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT',
@@ -639,17 +674,31 @@
 -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',
 -- 'Vulkan.Core10.Sampler.SamplerCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM',
 -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT',
 -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',
 -- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',
 -- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.SwapchainLatencyCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV',
 -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoEXT VkVideoEncodeH264GopRemainingFrameInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoEXT VkVideoEncodeH264PictureInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QualityLevelPropertiesEXT VkVideoEncodeH264QualityLevelPropertiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT VkVideoEncodeH264RateControlLayerInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersFeedbackInfoEXT VkVideoEncodeH264SessionParametersFeedbackInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersGetInfoEXT VkVideoEncodeH264SessionParametersGetInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265GopRemainingFrameInfoEXT VkVideoEncodeH265GopRemainingFrameInfoEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionCreateInfoEXT VkVideoEncodeH265SessionCreateInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersFeedbackInfoEXT VkVideoEncodeH265SessionParametersFeedbackInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoEXT VkVideoEncodeH265SessionParametersGetInfoEXT>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeSessionParametersFeedbackInfoKHR VkVideoEncodeSessionParametersFeedbackInfoKHR>,
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
@@ -816,7 +865,7 @@
 -- type, are defined as @uint64_t@ integers in the C API. This is in
 -- contrast to the 32-bit types, where the @Vk*FlagBits@ type is defined as
 -- a C @enum@ and the individual bits as enumerants belonging to that
--- @enum@. As a result, there is less compile-time type checking possible
+-- @enum@. As a result, there is less compile time type checking possible
 -- for the 64-bit types. This is unavoidable since there is no sufficiently
 -- portable way to define a 64-bit @enum@ type in C99.
 --
@@ -853,6 +902,7 @@
 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',
 -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',
@@ -862,6 +912,7 @@
 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineScratchSizeAMDX',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
@@ -878,6 +929,7 @@
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
@@ -888,10 +940,12 @@
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
 -- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferPropertiesQNX',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT',
 -- 'Vulkan.Core10.Image.SubresourceLayout',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,
@@ -901,6 +955,7 @@
 -- 'Vulkan.Core10.MemoryManagement.bindImageMemory',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2',
@@ -944,8 +999,10 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.BindPipelineIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindVertexBufferIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',
@@ -954,6 +1011,7 @@
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.DeviceOrHostAddressConstAMDX',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',
@@ -964,6 +1022,10 @@
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryIndirectNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.cmdDecompressMemoryIndirectCountNV',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'
 type DeviceAddress = Word64
diff --git a/src/Vulkan/Core10/FundamentalTypes.hs-boot b/src/Vulkan/Core10/FundamentalTypes.hs-boot
--- a/src/Vulkan/Core10/FundamentalTypes.hs-boot
+++ b/src/Vulkan/Core10/FundamentalTypes.hs-boot
@@ -67,8 +67,10 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.BindPipelineIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindVertexBufferIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',
@@ -77,6 +79,7 @@
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.DeviceOrHostAddressConstAMDX',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',
@@ -87,6 +90,10 @@
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryIndirectNV',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.cmdDecompressMemoryIndirectCountNV',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'
 type DeviceAddress = Word64
@@ -117,6 +124,7 @@
 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',
 -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV',
 -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV',
@@ -126,6 +134,7 @@
 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT',
 -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineScratchSizeAMDX',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
@@ -142,6 +151,7 @@
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
@@ -152,10 +162,12 @@
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
 -- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferPropertiesQNX',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT',
 -- 'Vulkan.Core10.Image.SubresourceLayout',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,
@@ -165,6 +177,7 @@
 -- 'Vulkan.Core10.MemoryManagement.bindImageMemory',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2',
diff --git a/src/Vulkan/Core10/Handles.hs b/src/Vulkan/Core10/Handles.hs
--- a/src/Vulkan/Core10/Handles.hs
+++ b/src/Vulkan/Core10/Handles.hs
@@ -143,6 +143,7 @@
 -- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR',
 -- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.getDrmDisplayEXT',
 -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',
+-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT',
 -- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getPhysicalDeviceDisplayPlaneProperties2KHR',
@@ -195,6 +196,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.getPhysicalDeviceToolProperties',
 -- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>,
 -- 'Vulkan.Extensions.VK_KHR_wayland_surface.getPhysicalDeviceWaylandPresentationSupportKHR',
 -- 'Vulkan.Extensions.VK_KHR_win32_surface.getPhysicalDeviceWin32PresentationSupportKHR',
@@ -245,7 +247,10 @@
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureToMemoryKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToImageEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT',
 -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyMemoryToAccelerationStructureKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMemoryToMicromapEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapEXT',
 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapToMemoryEXT',
@@ -264,6 +269,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate',
 -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR',
 -- 'Vulkan.Core10.Device.createDevice', 'Vulkan.Core10.Event.createEvent',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
 -- 'Vulkan.Core10.Fence.createFence',
 -- 'Vulkan.Core10.Pass.createFramebuffer',
 -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
@@ -380,6 +386,7 @@
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements',
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.getDeviceImageSubresourceLayoutKHR',
 -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress',
 -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddressKHR',
@@ -389,7 +396,10 @@
 -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2',
 -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',
 -- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR>,
 -- 'Vulkan.Core10.Event.getEventStatus',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineNodeIndexAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineScratchSizeAMDX',
 -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.getFenceFdKHR',
 -- 'Vulkan.Core10.Fence.getFenceStatus',
 -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.getFenceWin32HandleKHR',
@@ -404,10 +414,12 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2',
 -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR',
 -- 'Vulkan.Core10.Image.getImageSubresourceLayout',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.getImageSubresourceLayout2KHR',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewAddressNVX',
 -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewHandleNVX',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageViewOpaqueCaptureDescriptorDataEXT',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.getLatencyTimingsNV',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getMemoryAndroidHardwareBufferANDROID',
 -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR',
@@ -425,6 +437,8 @@
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutablePropertiesKHR',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectDeviceAddressNV',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV',
 -- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData',
 -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',
@@ -435,7 +449,9 @@
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupStackSizeKHR',
 -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getRefreshCycleDurationGOOGLE',
 -- 'Vulkan.Core10.Pass.getRenderAreaGranularity',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.getRenderingAreaGranularityKHR',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getSamplerOpaqueCaptureDescriptorDataEXT',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.getSemaphoreCounterValue',
 -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.getSemaphoreFdKHR',
@@ -457,6 +473,7 @@
 -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.importSemaphoreZirconHandleFUCHSIA',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.initializePerformanceApiINTEL',
 -- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.latencySleepNV',
 -- 'Vulkan.Core10.Memory.mapMemory',
 -- 'Vulkan.Extensions.VK_KHR_map_memory2.mapMemory2KHR',
 -- 'Vulkan.Core10.PipelineCache.mergePipelineCaches',
@@ -479,11 +496,14 @@
 -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.setDeviceMemoryPriorityEXT',
 -- 'Vulkan.Core10.Event.setEvent',
 -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencyMarkerNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencySleepModeNV',
 -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData',
 -- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore',
 -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.signalSemaphoreKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.transitionImageLayoutEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance1.trimCommandPool',
 -- 'Vulkan.Extensions.VK_KHR_maintenance1.trimCommandPoolKHR',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.uninitializePerformanceApiINTEL',
@@ -528,6 +548,7 @@
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse',
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.queueEndDebugUtilsLabelEXT',
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.queueInsertDebugUtilsLabelEXT',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.queueNotifyOutOfBandNV',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR',
 -- 'Vulkan.Extensions.VK_INTEL_performance_query.queueSetPerformanceConfigurationINTEL',
 -- 'Vulkan.Core10.Queue.queueSubmit',
@@ -573,6 +594,7 @@
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBuffersEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR',
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',
@@ -625,6 +647,9 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatch',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase',
 -- 'Vulkan.Extensions.VK_KHR_device_group.cmdDispatchBaseKHR',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDraw',
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterHUAWEI',
@@ -662,6 +687,7 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
 -- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdInsertDebugUtilsLabelEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdNextSubpass2',
@@ -683,6 +709,7 @@
 -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT',
+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants',
 -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV',
 -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV',
@@ -701,6 +728,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',
+-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds',
@@ -782,6 +810,7 @@
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',
 -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR',
@@ -891,6 +920,7 @@
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT',
 -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',
+-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
@@ -903,6 +933,7 @@
 -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR',
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2',
@@ -973,9 +1004,14 @@
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT',
 -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
+-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT',
 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',
@@ -1000,7 +1036,8 @@
 -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements',
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.getImageSparseMemoryRequirements',
 -- 'Vulkan.Core10.Image.getImageSubresourceLayout',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.getImageSubresourceLayout2KHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR'
 newtype Image = Image Word64
   deriving newtype (Eq, Ord, Storable, Zero)
@@ -1065,23 +1102,29 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV',
 -- 'Vulkan.Core10.Pipeline.createComputePipelines',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
 -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV',
 -- 'Vulkan.Core10.Pipeline.destroyPipeline',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineNodeIndexAMDX',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineScratchSizeAMDX',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingCaptureReplayShaderGroupHandlesKHR',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupHandlesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.getRayTracingShaderGroupHandlesNV',
@@ -1103,6 +1146,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
 -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
@@ -1251,6 +1295,7 @@
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',
 -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepInfoNV',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',
@@ -1381,6 +1426,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Pipeline.createComputePipelines',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
 -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
 -- 'Vulkan.Core10.PipelineCache.createPipelineCache',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',
diff --git a/src/Vulkan/Core10/Image.hs b/src/Vulkan/Core10/Image.hs
--- a/src/Vulkan/Core10/Image.hs
+++ b/src/Vulkan/Core10/Image.hs
@@ -71,6 +71,7 @@
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.FundamentalTypes (Extent3D)
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ExternalFormatQNX)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryImageCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExternalMemoryImageCreateInfoNV)
 import Vulkan.Core10.Enums.Format (Format)
@@ -121,11 +122,42 @@
 -- -   #VUID-vkCreateImage-flags-00939# If the @flags@ member of
 --     @pCreateInfo@ includes
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+--     feature is not enabled, creating this 'Vulkan.Core10.Handles.Image'
+--     /must/ not cause the total required sparse memory for all currently
+--     valid sparse resources on the device to exceed
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@
+--
+-- -   #VUID-vkCreateImage-flags-09385# If the @flags@ member of
+--     @pCreateInfo@ includes
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+--     feature is enabled, and the @usage@ member of @pCreateInfo@ contains
+--     bits not in
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseImageUsageFlags@,
 --     creating this 'Vulkan.Core10.Handles.Image' /must/ not cause the
 --     total required sparse memory for all currently valid sparse
---     resources on the device to exceed
+--     resources on the device, excluding 'Vulkan.Core10.Handles.Buffer'
+--     created with @usage@ member of @pCreateInfo@ containing bits in
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseBufferUsageFlags@
+--     and 'Vulkan.Core10.Handles.Image' created with @usage@ member of
+--     @pCreateInfo@ containing bits in
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseImageUsageFlags@,
+--     to exceed
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@
 --
+-- -   #VUID-vkCreateImage-flags-09386# If the @flags@ member of
+--     @pCreateInfo@ includes
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+--     feature is enabled, creating this 'Vulkan.Core10.Handles.Image'
+--     /must/ not cause the total required sparse memory for all currently
+--     valid sparse resources on the device to exceed
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseAddressSpaceSize@
+--
 -- -   #VUID-vkCreateImage-pNext-06389# If a
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA'
 --     has been chained to @pNext@, @pCreateInfo@ /must/ match the
@@ -331,9 +363,9 @@
 --
 -- 'getImageSubresourceLayout' is invariant for the lifetime of a single
 -- image. However, the subresource layout of images in Android hardware
--- buffer external memory is not known until the image has been bound to
--- memory, so applications /must/ not call 'getImageSubresourceLayout' for
--- such an image before it has been bound.
+-- buffer or QNX Screen buffer external memory is not known until the image
+-- has been bound to memory, so applications /must/ not call
+-- 'getImageSubresourceLayout' for such an image before it has been bound.
 --
 -- == Valid Usage
 --
@@ -353,23 +385,28 @@
 --     member of @pSubresource@ /must/ be less than the @arrayLayers@
 --     specified in 'ImageCreateInfo' when @image@ was created
 --
--- -   #VUID-vkGetImageSubresourceLayout-format-04461# If @format@ is a
---     color format, the @aspectMask@ member of @pSubresource@ /must/ be
+-- -   #VUID-vkGetImageSubresourceLayout-format-08886# If @format@ of the
+--     @image@ is a color format, @tiling@ of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not
+--     have a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     the @aspectMask@ member of @pSubresource@ /must/ be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
--- -   #VUID-vkGetImageSubresourceLayout-format-04462# If @format@ has a
---     depth component, the @aspectMask@ member of @pSubresource@ /must/
---     contain
+-- -   #VUID-vkGetImageSubresourceLayout-format-04462# If @format@ of the
+--     @image@ has a depth component, the @aspectMask@ member of
+--     @pSubresource@ /must/ contain
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
 --
--- -   #VUID-vkGetImageSubresourceLayout-format-04463# If @format@ has a
---     stencil component, the @aspectMask@ member of @pSubresource@ /must/
---     contain
+-- -   #VUID-vkGetImageSubresourceLayout-format-04463# If @format@ of the
+--     @image@ has a stencil component, the @aspectMask@ member of
+--     @pSubresource@ /must/ contain
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
 --
--- -   #VUID-vkGetImageSubresourceLayout-format-04464# If @format@ does not
---     contain a stencil or depth component, the @aspectMask@ member of
---     @pSubresource@ /must/ not contain
+-- -   #VUID-vkGetImageSubresourceLayout-format-04464# If @format@ of the
+--     @image@ does not contain a stencil or depth component, the
+--     @aspectMask@ member of @pSubresource@ /must/ not contain
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
 --
@@ -380,6 +417,7 @@
 --     then the @aspectMask@ member of @pSubresource@ /must/ be a single
 --     valid
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-vkGetImageSubresourceLayout-image-01895# If @image@ was
 --     created with the
@@ -512,6 +550,16 @@
 -- /may/ occur even when all image creation parameters satisfy their valid
 -- usage requirements.
 --
+-- If the implementation reports 'Vulkan.Core10.FundamentalTypes.TRUE' in
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT'::@identicalMemoryTypeRequirements@,
+-- usage of
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+-- /must/ not affect the memory type requirements of the image as described
+-- in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-memory-requirements Sparse Resource Memory Requirements>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association Resource Memory Association>.
+--
 -- Note
 --
 -- For images created without
@@ -595,6 +643,8 @@
 --         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and if
 --         the @pNext@ chain includes no
 --         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--         or
+--         'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
 --         structure with non-zero @externalFormat@, then
 --         @imageCreateFormatFeatures@ is the value of
 --         'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@
@@ -613,6 +663,17 @@
 --         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID'
 --         with a matching @externalFormat@ value.
 --
+--     -   If @tiling@ is
+--         'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and if
+--         the @pNext@ chain includes a
+--         'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
+--         structure with non-zero @externalFormat@, then
+--         @imageCreateFormatFeatures@ is the value of
+--         'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'::@formatFeatures@
+--         obtained by
+--         'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX'
+--         with a matching @externalFormat@ value.
+--
 --     -   If the @pNext@ chain includes a
 --         'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA'
 --         structure, then @imageCreateFormatFeatures@ is the value of
@@ -647,6 +708,8 @@
 --
 --     -   If 'ImageCreateInfo'::@pNext@ contains no
 --         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--         or
+--         'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
 --         structure with non-zero @externalFormat@, then
 --         @imageCreateImageFormatPropertiesList@ is the list of structures
 --         obtained by calling
@@ -886,6 +949,14 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT',
 --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
 --
+-- -   #VUID-VkImageCreateInfo-flags-08865# If @flags@ contains
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT',
+--     @extent.width@ and @extent.height@ /must/ be equal
+--
+-- -   #VUID-VkImageCreateInfo-flags-08866# If @flags@ contains
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT',
+--     @arrayLayers@ /must/ be greater than or equal to 6
+--
 -- -   #VUID-VkImageCreateInfo-flags-02557# If @flags@ contains
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT',
 --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
@@ -910,12 +981,6 @@
 --     than or equal to @imageCreateMaxExtent.depth@ (as defined in
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
 --
--- -   #VUID-VkImageCreateInfo-imageType-00954# If @imageType@ is
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @flags@ contains
---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT',
---     @extent.width@ and @extent.height@ /must/ be equal and @arrayLayers@
---     /must/ be greater than or equal to 6
---
 -- -   #VUID-VkImageCreateInfo-imageType-00956# If @imageType@ is
 --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', both @extent.height@
 --     and @extent.depth@ /must/ be @1@
@@ -1273,6 +1338,37 @@
 --     structure whose @externalFormat@ member is not @0@, @tiling@ /must/
 --     be 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'
 --
+-- -   #VUID-VkImageCreateInfo-pNext-08951# If the @pNext@ chain includes a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'
+--     structure whose @handleTypes@ member includes
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX',
+--     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
+--
+-- -   #VUID-VkImageCreateInfo-pNext-08952# If the @pNext@ chain includes a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'
+--     structure whose @handleTypes@ member includes
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX',
+--     @mipLevels@ /must/ either be @1@ or equal to the number of levels in
+--     the complete mipmap chain based on @extent.width@, @extent.height@,
+--     and @extent.depth@
+--
+-- -   #VUID-VkImageCreateInfo-pNext-08953# If the @pNext@ chain includes a
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
+--     structure whose @externalFormat@ member is not @0@, @flags@ /must/
+--     not include
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'
+--
+-- -   #VUID-VkImageCreateInfo-pNext-08954# If the @pNext@ chain includes a
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
+--     structure whose @externalFormat@ member is not @0@, @usage@ /must/
+--     not include any usages except
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'
+--
+-- -   #VUID-VkImageCreateInfo-pNext-08955# If the @pNext@ chain includes a
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
+--     structure whose @externalFormat@ member is not @0@, @tiling@ /must/
+--     be 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'
+--
 -- -   #VUID-VkImageCreateInfo-format-02795# If @format@ is a depth-stencil
 --     format, @usage@ includes
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',
@@ -1553,6 +1649,14 @@
 --     /must/ not be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'
 --
+-- -   #VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048# If
+--     @imageCreateFormatFeatures@ (as defined in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
+--     does not contain
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT',
+--     then @usage@ /must/ not contain
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be
@@ -1565,6 +1669,7 @@
 --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV',
 --     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
 --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo',
 --     'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',
@@ -1622,6 +1727,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.DeviceImageSubresourceInfoKHR',
 -- 'Vulkan.Core10.FundamentalTypes.Extent3D',
 -- 'Vulkan.Core10.Enums.Format.Format',
 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags',
@@ -1693,6 +1799,7 @@
   getNext ImageCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @ExternalFormatQNX = Just f
     | Just Refl <- eqT @e @OpticalFlowImageFormatInfoNV = Just f
     | Just Refl <- eqT @e @ImportMetalIOSurfaceInfoEXT = Just f
     | Just Refl <- eqT @e @ImportMetalTextureInfoEXT = Just f
@@ -1891,7 +1998,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
 -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR',
 -- 'getImageSubresourceLayout'
 data SubresourceLayout = SubresourceLayout
   { -- | @offset@ is the byte offset from the start of the image or the plane
diff --git a/src/Vulkan/Core10/ImageView.hs b/src/Vulkan/Core10/ImageView.hs
--- a/src/Vulkan/Core10/ImageView.hs
+++ b/src/Vulkan/Core10/ImageView.hs
@@ -103,6 +103,11 @@
 
 -- | vkCreateImageView - Create an image view from an existing image
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateImageView-image-09179# 'ImageViewCreateInfo'::@image@
+--     /must/ have been created from @device@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateImageView-device-parameter# @device@ /must/ be a valid
@@ -272,6 +277,7 @@
 -- 'ImageViewCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>
 data ComponentMapping = ComponentMapping
   { -- | @r@ is a 'Vulkan.Core10.Enums.ComponentSwizzle.ComponentSwizzle'
@@ -459,6 +465,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT',
 -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',
 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',
@@ -784,12 +791,14 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_BIT'
 --
--- -   #VUID-VkImageViewCreateInfo-usage-02276# If @usage@ contains
+-- -   #VUID-VkImageViewCreateInfo-usage-08931# If @usage@ contains
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT',
 --     then the image view’s
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
 --
 -- -   #VUID-VkImageViewCreateInfo-usage-02277# If @usage@ contains
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',
@@ -798,36 +807,30 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
 --
--- -   #VUID-VkImageViewCreateInfo-usage-06516# If @usage@ contains
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT',
---     then the image view’s
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',
---     if the image is created with
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
---     feature is enabled
---
--- -   #VUID-VkImageViewCreateInfo-usage-06517# If @usage@ contains
+-- -   #VUID-VkImageViewCreateInfo-usage-08932# If @usage@ contains
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',
---     then the image view’s
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>
---     must contain
---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',
---     if the image is created with
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
---     feature is enabled
+--     and any of the following is true:
 --
--- -   #VUID-VkImageViewCreateInfo-usage-02652# If @usage@ contains
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',
+--     -   the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--         feature is not enabled
+--
+--     -   the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--         property is 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+--     -   @image@ was created with an
+--         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--         value of 0
+--
 --     then the image view’s
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>
 --     /must/ contain at least one of
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
 --     or
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
 --
 -- -   #VUID-VkImageViewCreateInfo-subresourceRange-01478#
 --     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@
@@ -883,7 +886,7 @@
 --     computed from @baseMipLevel@ and @extent.depth@ specified in
 --     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created,
 --     according to the formula defined in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>
 --
 -- -   #VUID-VkImageViewCreateInfo-subresourceRange-02725# If
 --     @subresourceRange.layerCount@ is not
@@ -899,7 +902,7 @@
 --     @baseMipLevel@ and @extent.depth@ specified in
 --     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created,
 --     according to the formula defined in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>
 --
 -- -   #VUID-VkImageViewCreateInfo-image-01761# If @image@ was created with
 --     the
@@ -940,8 +943,8 @@
 --     flag, if the @format@ of the @image@ is a
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>
 --     format, and if @subresourceRange.aspectMask@ is one of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect masks>,
---     then @format@ /must/ be compatible with the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bits, then @format@ /must/ be compatible with the
 --     'Vulkan.Core10.Enums.Format.Format' for the plane of the @image@
 --     @format@ indicated by @subresourceRange.aspectMask@, as defined in
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>
@@ -949,6 +952,7 @@
 -- -   #VUID-VkImageViewCreateInfo-subresourceRange-07818#
 --     @subresourceRange.aspectMask@ /must/ only have at most 1 valid
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkImageViewCreateInfo-image-01762# If @image@ was not created
 --     with the
@@ -1001,18 +1005,34 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>
 --
 -- -   #VUID-VkImageViewCreateInfo-image-02399# If @image@ has an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats Android external format>,
 --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-VkImageViewCreateInfo-image-02400# If @image@ has an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats Android external format>,
 --     the @pNext@ chain /must/ include a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'
 --     structure with a @conversion@ object created with the same external
 --     format as @image@
 --
 -- -   #VUID-VkImageViewCreateInfo-image-02401# If @image@ has an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats Android external format>,
+--     all members of @components@ /must/ be the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>
+--
+-- -   #VUID-VkImageViewCreateInfo-image-08957# If @image@ has an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-external-formats QNX Screen external format>,
+--     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-VkImageViewCreateInfo-image-08958# If @image@ has an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-external-formats QNX Screen external format>,
+--     the @pNext@ chain /must/ include a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'
+--     structure with a @conversion@ object created with the same external
+--     format as @image@
+--
+-- -   #VUID-VkImageViewCreateInfo-image-08959# If @image@ has an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-external-formats QNX Screen external format>,
 --     all members of @components@ /must/ be the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>
 --
diff --git a/src/Vulkan/Core10/Memory.hs b/src/Vulkan/Core10/Memory.hs
--- a/src/Vulkan/Core10/Memory.hs
+++ b/src/Vulkan/Core10/Memory.hs
@@ -88,6 +88,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalBufferInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ImportScreenBufferInfoQNX)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo)
 import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags)
@@ -897,6 +898,9 @@
 --
 -- -   'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA'
 --
+-- -   'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ImportScreenBufferInfoQNX'
+--     with a non-@NULL@ @buffer@ value
+--
 -- If the parameters define an import operation and the external handle
 -- type is
 -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT',
@@ -955,19 +959,19 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkMemoryAllocateInfo-None-06657# The parameters /must/ not
---     define more than one
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operation import operation>
---
 -- -   #VUID-VkMemoryAllocateInfo-allocationSize-07897# If the parameters
 --     do not define an
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operation import or export operation>,
 --     @allocationSize@ /must/ be greater than @0@
 --
+-- -   #VUID-VkMemoryAllocateInfo-None-06657# The parameters /must/ not
+--     define more than one
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operation import operation>
+--
 -- -   #VUID-VkMemoryAllocateInfo-allocationSize-07899# If the parameters
 --     define an export operation and the handle type is not
---     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID',
---     @allocationSize@ /must/ be greater than @0@
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
+--     , @allocationSize@ /must/ be greater than @0@
 --
 -- -   #VUID-VkMemoryAllocateInfo-buffer-06380# If the parameters define an
 --     import operation from an
@@ -1057,8 +1061,10 @@
 --     require a dedicated allocation, as reported by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --     in
---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@
---     or
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@,
+--     or by
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferProperties'
+--     in
 --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties'::@externalMemoryProperties.externalMemoryFeatures@,
 --     the @pNext@ chain /must/ include a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'
@@ -1284,6 +1290,58 @@
 --     that bit /must/ be included in the Android hardware buffer’s
 --     @AHardwareBuffer_Desc@::@usage@
 --
+-- -   #VUID-VkMemoryAllocateInfo-screenBufferImport-08941# If the
+--     parameters define an import operation and the external handle type
+--     is
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX',
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX'::@screenBufferImport@
+--     /must/ be enabled
+--
+-- -   #VUID-VkMemoryAllocateInfo-allocationSize-08942# If the parameters
+--     define an import operation and the external handle type is
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX',
+--     @allocationSize@ /must/ be the size returned by
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX'
+--     for the QNX Screen buffer
+--
+-- -   #VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943# If the parameters
+--     define an import operation and the external handle type is
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX',
+--     @memoryTypeIndex@ /must/ be one of those returned by
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX'
+--     for the QNX Screen buffer
+--
+-- -   #VUID-VkMemoryAllocateInfo-pNext-08944# If the parameters define an
+--     import operation, the external handle is a QNX Screen buffer, and
+--     the @pNext@ chain includes a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'
+--     with @image@ that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     the QNX Screen’s buffer must be a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-validity valid QNX Screen buffer>
+--
+-- -   #VUID-VkMemoryAllocateInfo-pNext-08945# If the parameters define an
+--     import operation, the external handle is an QNX Screen buffer, and
+--     the @pNext@ chain includes a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'
+--     with @image@ that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     the format of @image@ /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' or the format returned
+--     by
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX'
+--     in
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'::@format@
+--     for the QNX Screen buffer
+--
+-- -   #VUID-VkMemoryAllocateInfo-pNext-08946# If the parameters define an
+--     import operation, the external handle is a QNX Screen buffer, and
+--     the @pNext@ chain includes a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'
+--     structure with @image@ that is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the width, height, and
+--     array layer dimensions of @image@ and the QNX Screen buffer’s
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.Screen_buffer'
+--     must be identical
+--
 -- -   #VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329# If
 --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo'::@opaqueCaptureAddress@
 --     is not zero,
@@ -1368,6 +1426,7 @@
 --     'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',
 --     'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA',
 --     'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalBufferInfoEXT',
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ImportScreenBufferInfoQNX',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',
@@ -1407,6 +1466,7 @@
   getNext MemoryAllocateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends MemoryAllocateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @ImportScreenBufferInfoQNX = Just f
     | Just Refl <- eqT @e @ImportMetalBufferInfoEXT = Just f
     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f
     | Just Refl <- eqT @e @ImportMemoryBufferCollectionFUCHSIA = Just f
diff --git a/src/Vulkan/Core10/MemoryManagement.hs b/src/Vulkan/Core10/MemoryManagement.hs
--- a/src/Vulkan/Core10/MemoryManagement.hs
+++ b/src/Vulkan/Core10/MemoryManagement.hs
@@ -229,6 +229,15 @@
 --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'
 --     bit set
 --
+-- -   #VUID-vkBindBufferMemory-bufferDeviceAddressCaptureReplay-09200# If
+--     the
+--     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures'::@bufferDeviceAddressCaptureReplay@
+--     feature is enabled and @buffer@ was created with the
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     bit set, @memory@ /must/ have been allocated with the
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     bit set
+--
 -- -   #VUID-vkBindBufferMemory-buffer-06408# If @buffer@ was created with
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA'
 --     chained to 'Vulkan.Core10.Buffer.BufferCreateInfo'::@pNext@,
@@ -237,14 +246,19 @@
 --     chained to 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@pNext@
 --
 -- -   #VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112# If the
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'
---     ::@descriptorBufferCaptureReplay@ feature is enabled and @buffer@
---     was created with the
+--     @buffer@ was created with the
 --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
 --     bit set, @memory@ /must/ have been allocated with the
 --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'
 --     bit set
 --
+-- -   #VUID-vkBindBufferMemory-buffer-09201# If the @buffer@ was created
+--     with the
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
+--     bit set, @memory@ /must/ have been allocated with the
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     bit set
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkBindBufferMemory-device-parameter# @device@ /must/ be a
@@ -336,6 +350,11 @@
 --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
 --     external memory handle type, then @image@ /must/ be bound to memory
 --
+-- -   #VUID-vkGetImageMemoryRequirements-image-08960# If @image@ was
+--     created with the
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'
+--     external memory handle type, then @image@ /must/ be bound to memory
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetImageMemoryRequirements-device-parameter# @device@ /must/
@@ -499,12 +518,17 @@
 --     when @image@ was created
 --
 -- -   #VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113# If the
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'
---     ::@descriptorBufferCaptureReplay@ feature is enabled and @image@ was
---     created with the
+--     @image@ was created with the
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
 --     bit set, @memory@ /must/ have been allocated with the
 --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'
+--     bit set
+--
+-- -   #VUID-vkBindImageMemory-image-09202# If the @image@ was created with
+--     the
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
+--     bit set, @memory@ /must/ have been allocated with the
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
 --     bit set
 --
 -- -   #VUID-vkBindImageMemory-image-01608# @image@ /must/ not have been
diff --git a/src/Vulkan/Core10/OtherTypes.hs b/src/Vulkan/Core10/OtherTypes.hs
--- a/src/Vulkan/Core10/OtherTypes.hs
+++ b/src/Vulkan/Core10/OtherTypes.hs
@@ -49,6 +49,7 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT)
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.ImageView (ImageSubresourceRange)
@@ -216,44 +217,91 @@
 --     then it /must/ be bound completely and contiguously to a single
 --     'Vulkan.Core10.Handles.DeviceMemory' object
 --
--- -   #VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087# If
---     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
---     least one /must/ not be a special queue family reserved for external
---     memory ownership transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
---
--- -   #VUID-VkBufferMemoryBarrier-buffer-04088# If @buffer@ was created
+-- -   #VUID-VkBufferMemoryBarrier-buffer-09095# If @buffer@ was created
 --     with a sharing mode of
---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and
---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the
---     special queue family values reserved for external memory transfers,
---     the other /must/ be
---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'
+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
+--     @srcQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
--- -   #VUID-VkBufferMemoryBarrier-buffer-04089# If @buffer@ was created
+-- -   #VUID-VkBufferMemoryBarrier-buffer-09096# If @buffer@ was created
 --     with a sharing mode of
 --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
 --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid
---     queue families, or one of the special queue family values reserved
---     for external memory transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
+--     @dstQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
--- -   #VUID-VkBufferMemoryBarrier-synchronization2-03853# If the
+-- -   #VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087# If
+--     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
+--     least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/
+--     not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkBufferMemoryBarrier-None-09097# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkBufferMemoryBarrier-None-09098# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkBufferMemoryBarrier-None-09049# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature is not enabled, and @buffer@ was created with a sharing mode
 --     of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at
 --     least one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/
 --     be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'
 --
+-- -   #VUID-VkBufferMemoryBarrier-None-09050# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, and @buffer@ was created with a sharing mode
+--     of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
+--     @srcQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkBufferMemoryBarrier-None-09051# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>
+--     feature is not enabled, and @buffer@ was created with a sharing mode
+--     of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
+--     @dstQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkBufferMemoryBarrier-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER'
 --
--- -   #VUID-VkBufferMemoryBarrier-pNext-pNext# @pNext@ /must/ be @NULL@
+-- -   #VUID-VkBufferMemoryBarrier-pNext-pNext# @pNext@ /must/ be @NULL@ or
+--     a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT'
 --
+-- -   #VUID-VkBufferMemoryBarrier-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkBufferMemoryBarrier-buffer-parameter# @buffer@ /must/ be a
 --     valid 'Vulkan.Core10.Handles.Buffer' handle
 --
@@ -266,8 +314,10 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier',
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents'
-data BufferMemoryBarrier = BufferMemoryBarrier
-  { -- | @srcAccessMask@ is a bitmask of
+data BufferMemoryBarrier (es :: [Type]) = BufferMemoryBarrier
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @srcAccessMask@ is a bitmask of
     -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.
     srcAccessMask :: AccessFlags
@@ -293,41 +343,56 @@
     -- from @offset@ to the end of the buffer.
     size :: DeviceSize
   }
-  deriving (Typeable, Eq)
+  deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (BufferMemoryBarrier)
+deriving instance Generic (BufferMemoryBarrier (es :: [Type]))
 #endif
-deriving instance Show BufferMemoryBarrier
+deriving instance Show (Chain es) => Show (BufferMemoryBarrier es)
 
-instance ToCStruct BufferMemoryBarrier where
+instance Extensible BufferMemoryBarrier where
+  extensibleTypeName = "BufferMemoryBarrier"
+  setNext BufferMemoryBarrier{..} next' = BufferMemoryBarrier{next = next', ..}
+  getNext BufferMemoryBarrier{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferMemoryBarrier e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss BufferMemoryBarrier es
+         , PokeChain es ) => ToCStruct (BufferMemoryBarrier es) where
   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BufferMemoryBarrier{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (srcAccessMask)
-    poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (dstAccessMask)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (srcQueueFamilyIndex)
-    poke ((p `plusPtr` 28 :: Ptr Word32)) (dstQueueFamilyIndex)
-    poke ((p `plusPtr` 32 :: Ptr Buffer)) (buffer)
-    poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (offset)
-    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (size)
-    f
+  pokeCStruct p BufferMemoryBarrier{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (srcAccessMask)
+    lift $ poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (dstAccessMask)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (srcQueueFamilyIndex)
+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (dstQueueFamilyIndex)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (buffer)
+    lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (offset)
+    lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (size)
+    lift $ f
   cStructSize = 56
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (zero)
-    poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (zero)
+    lift $ poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)
+    lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)
+    lift $ f
 
-instance FromCStruct BufferMemoryBarrier where
+instance ( Extendss BufferMemoryBarrier es
+         , PeekChain es ) => FromCStruct (BufferMemoryBarrier es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     srcAccessMask <- peek @AccessFlags ((p `plusPtr` 16 :: Ptr AccessFlags))
     dstAccessMask <- peek @AccessFlags ((p `plusPtr` 20 :: Ptr AccessFlags))
     srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
@@ -336,6 +401,7 @@
     offset <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))
     size <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))
     pure $ BufferMemoryBarrier
+             next
              srcAccessMask
              dstAccessMask
              srcQueueFamilyIndex
@@ -344,14 +410,9 @@
              offset
              size
 
-instance Storable BufferMemoryBarrier where
-  sizeOf ~_ = 56
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BufferMemoryBarrier where
+instance es ~ '[] => Zero (BufferMemoryBarrier es) where
   zero = BufferMemoryBarrier
+           ()
            zero
            zero
            zero
@@ -621,30 +682,56 @@
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --     set
 --
--- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070# If
---     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
---     least one /must/ not be a special queue family reserved for external
---     memory ownership transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
---
--- -   #VUID-VkImageMemoryBarrier-image-04071# If @image@ was created with
+-- -   #VUID-VkImageMemoryBarrier-image-09117# If @image@ was created with
 --     a sharing mode of
---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and
---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the
---     special queue family values reserved for external memory transfers,
---     the other /must/ be
---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'
+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
+--     @srcQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
--- -   #VUID-VkImageMemoryBarrier-image-04072# If @image@ was created with
+-- -   #VUID-VkImageMemoryBarrier-image-09118# If @image@ was created with
 --     a sharing mode of
 --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
 --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid
---     queue families, or one of the special queue family values reserved
---     for external memory transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
+--     @dstQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
+-- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070# If
+--     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
+--     least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/
+--     not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkImageMemoryBarrier-None-09119# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkImageMemoryBarrier-None-09120# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
 -- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120# 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>
@@ -751,17 +838,23 @@
 --     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
+-- -   #VUID-VkImageMemoryBarrier-image-09241# If @image@ has a color
+--     format that is single-plane, then the @aspectMask@ member of
+--     @subresourceRange@ /must/ be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
+-- -   #VUID-VkImageMemoryBarrier-image-09242# If @image@ has a color
+--     format and 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 at least
 --     one
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
---     or 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--     bit or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
 -- -   #VUID-VkImageMemoryBarrier-image-03319# If @image@ has a
 --     depth\/stencil format with both depth and stencil and the
@@ -795,20 +888,39 @@
 --     or
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
 --
--- -   #VUID-VkImageMemoryBarrier-synchronization2-03857# If the
+-- -   #VUID-VkImageMemoryBarrier-None-09052# 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
 --     of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at
 --     least one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/
 --     be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'
 --
+-- -   #VUID-VkImageMemoryBarrier-None-09053# 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
+--     of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
+--     @srcQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkImageMemoryBarrier-None-09054# 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
+--     of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
+--     @dstQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkImageMemoryBarrier-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER'
 --
--- -   #VUID-VkImageMemoryBarrier-pNext-pNext# @pNext@ /must/ be @NULL@ or
---     a pointer to a valid instance of
+-- -   #VUID-VkImageMemoryBarrier-pNext-pNext# Each @pNext@ member of any
+--     structure (including this one) in the @pNext@ chain /must/ be either
+--     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT'
+--     or
 --     'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT'
 --
 -- -   #VUID-VkImageMemoryBarrier-sType-unique# The @sType@ value of each
@@ -879,6 +991,7 @@
   getNext ImageMemoryBarrier{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f
     | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f
     | otherwise = Nothing
 
@@ -978,12 +1091,15 @@
     --
     -- #VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967# @headerSize@
     -- /must/ be 32
+    --
+    -- #VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990# @headerSize@
+    -- /must/ not exceed the size of the pipeline cache
     headerSize :: Word32
   , -- | @headerVersion@ is a
     -- 'Vulkan.Core10.Enums.PipelineCacheHeaderVersion.PipelineCacheHeaderVersion'
-    -- enum value specifying the version of the header. A consumer of the
-    -- pipeline cache /should/ use the cache version to interpret the remainder
-    -- of the cache header.
+    -- value specifying the version of the header. A consumer of the pipeline
+    -- cache /should/ use the cache version to interpret the remainder of the
+    -- cache header.
     --
     -- #VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968#
     -- @headerVersion@ /must/ be
@@ -1146,6 +1262,19 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed'.
 --
 -- == Valid Usage
+--
+-- -   #VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798# 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' or
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is
+--     used to bind the index buffer, the size of the bound index buffer is
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@
 --
 -- -   #VUID-VkDrawIndexedIndirectCommand-None-00552# For a given vertex
 --     buffer binding, any attribute data fetched /must/ be entirely
diff --git a/src/Vulkan/Core10/OtherTypes.hs-boot b/src/Vulkan/Core10/OtherTypes.hs-boot
--- a/src/Vulkan/Core10/OtherTypes.hs-boot
+++ b/src/Vulkan/Core10/OtherTypes.hs-boot
@@ -16,12 +16,15 @@
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-data BufferMemoryBarrier
+type role BufferMemoryBarrier nominal
+data BufferMemoryBarrier (es :: [Type])
 
-instance ToCStruct BufferMemoryBarrier
-instance Show BufferMemoryBarrier
+instance ( Extendss BufferMemoryBarrier es
+         , PokeChain es ) => ToCStruct (BufferMemoryBarrier es)
+instance Show (Chain es) => Show (BufferMemoryBarrier es)
 
-instance FromCStruct BufferMemoryBarrier
+instance ( Extendss BufferMemoryBarrier es
+         , PeekChain es ) => FromCStruct (BufferMemoryBarrier es)
 
 
 data DispatchIndirectCommand
diff --git a/src/Vulkan/Core10/Pass.hs b/src/Vulkan/Core10/Pass.hs
--- a/src/Vulkan/Core10/Pass.hs
+++ b/src/Vulkan/Core10/Pass.hs
@@ -569,58 +569,15 @@
 -- format has depth and\/or stencil components, @loadOp@ and @storeOp@
 -- apply only to the depth data, while @stencilLoadOp@ and @stencilStoreOp@
 -- define how the stencil data is handled. @loadOp@ and @stencilLoadOp@
--- define the /load operations/ that execute as part of the first subpass
--- that uses the attachment. @storeOp@ and @stencilStoreOp@ define the
--- /store operations/ that execute as part of the last subpass that uses
--- the attachment.
---
--- The load operation for each sample in an attachment happens-before any
--- recorded command which accesses the sample in the first subpass where
--- the attachment is used. Load operations for attachments with a
--- depth\/stencil format execute in the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
--- pipeline stage. Load operations for attachments with a color format
--- execute in the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
--- pipeline stage.
---
--- The store operation for each sample in an attachment happens-after any
--- recorded command which accesses the sample in the last subpass where the
--- attachment is used. Store operations for attachments with a
--- depth\/stencil format execute in the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
--- pipeline stage. Store operations for attachments with a color format
--- execute in the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
--- pipeline stage.
---
--- If an attachment is not used by any subpass, @loadOp@, @storeOp@,
--- @stencilStoreOp@, and @stencilLoadOp@ will be ignored for that
--- attachment, and no load or store ops will be performed. However, any
--- transition specified by @initialLayout@ and @finalLayout@ will still be
--- executed.
---
--- The load and store operations apply on the first and last use of each
--- view in the render pass, respectively. If a view index of an attachment
--- is not included in the view mask in any subpass that uses it, then the
--- load and store operations are ignored, and the attachment’s memory
--- contents will not be modified by execution of a render pass instance.
---
--- During a render pass instance, input\/color attachments with color
--- formats that have a component size of 8, 16, or 32 bits /must/ be
--- represented in the attachment’s format throughout the instance.
--- Attachments with other floating- or fixed-point color formats, or with
--- depth components /may/ be represented in a format with a precision
--- higher than the attachment format, but /must/ be represented with the
--- same range. When such a component is loaded via the @loadOp@, it will be
--- converted into an implementation-dependent format used by the render
--- pass. Such components /must/ be converted from the render pass format,
--- to the format of the attachment, before they are resolved or stored at
--- the end of a render pass instance via @storeOp@. Conversions occur as
--- described in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation>
--- and
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedconv Fixed-Point Data Conversions>.
+-- define the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load operations>
+-- for the attachment. @storeOp@ and @stencilStoreOp@ define the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store operations>
+-- for the attachment. If an attachment is not used by any subpass,
+-- @loadOp@, @storeOp@, @stencilStoreOp@, and @stencilLoadOp@ will be
+-- ignored for that attachment, and no load or store ops will be performed.
+-- However, any transition specified by @initialLayout@ and @finalLayout@
+-- will still be executed.
 --
 -- If @flags@ includes
 -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT',
@@ -666,9 +623,7 @@
 -- other words, the same view /can/ be used simultaneously as an input and
 -- color or depth\/stencil attachment, but /must/ not be used as multiple
 -- color or depth\/stencil attachments nor as resolve or preserve
--- attachments. The precise set of valid scenarios is described in more
--- detail
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop below>.
+-- attachments.
 --
 -- If a set of attachments alias each other, then all except the first to
 -- be used in the render pass /must/ use an @initialLayout@ of
@@ -691,9 +646,6 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkAttachmentDescription-format-06698# @format@ /must/ not be
---     VK_FORMAT_UNDEFINED
---
 -- -   #VUID-VkAttachmentDescription-format-06699# If @format@ includes a
 --     color or depth component and @loadOp@ is
 --     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then
@@ -827,6 +779,14 @@
 --     feature is not enabled, @finalLayout@ /must/ not be
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
 --
+-- -   #VUID-VkAttachmentDescription-samples-08745# @samples@ /must/ be a
+--     bit value that is set in @imageCreateSampleCounts@ (as defined in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
+--     for the given @format@
+--
+-- -   #VUID-VkAttachmentDescription-format-06698# @format@ /must/ not be
+--     VK_FORMAT_UNDEFINED
+--
 -- -   #VUID-VkAttachmentDescription-format-06700# If @format@ includes a
 --     stencil component and @stencilLoadOp@ is
 --     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then
@@ -1144,12 +1104,10 @@
 -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',
 -- and if @pResolveAttachments@ is not @NULL@, each of its elements
 -- corresponds to a color attachment (the element in @pColorAttachments@ at
--- the same index), and a multisample resolve operation is defined for each
--- attachment. At the end of each subpass, multisample resolve operations
--- read the subpass’s color attachments, and resolve the samples for each
--- pixel within the render area to the same pixel location in the
--- corresponding resolve attachments, unless the resolve attachment index
--- is 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'.
+-- the same index), and a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve operation>
+-- is defined for each attachment unless the resolve attachment index is
+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'.
 --
 -- Similarly, if @flags@ does not include
 -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',
@@ -1157,36 +1115,29 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@pDepthStencilResolveAttachment@
 -- is not @NULL@ and does not have the value
 -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', it corresponds to the
--- depth\/stencil attachment in @pDepthStencilAttachment@, and multisample
--- resolve operations for depth and stencil are defined by
+-- depth\/stencil attachment in @pDepthStencilAttachment@, and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve operation>
+-- for depth and stencil are defined by
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@depthResolveMode@
 -- and
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@stencilResolveMode@,
--- respectively. At the end of each subpass, multisample resolve operations
--- read the subpass’s depth\/stencil attachment, and resolve the samples
--- for each pixel to the same pixel location in the corresponding resolve
--- attachment. If
--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@depthResolveMode@
--- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then the
--- depth component of the resolve attachment is not written to and its
--- contents are preserved. Similarly, if
--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@stencilResolveMode@
--- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then the
--- stencil component of the resolve attachment is not written to and its
--- contents are preserved.
+-- respectively. If
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@depthResolveMode@
--- is ignored if the 'Vulkan.Core10.Enums.Format.Format' of the
--- @pDepthStencilResolveAttachment@ does not have a depth component.
--- Similarly,
+-- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or the
+-- @pDepthStencilResolveAttachment@ does not have a depth aspect, no
+-- resolve operation is performed for the depth attachment. If
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@stencilResolveMode@
--- is ignored if the 'Vulkan.Core10.Enums.Format.Format' of the
--- @pDepthStencilResolveAttachment@ does not have a stencil component.
+-- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or the
+-- @pDepthStencilResolveAttachment@ does not have a stencil aspect, no
+-- resolve operation is performed for the stencil attachment.
 --
 -- If the image subresource range referenced by the depth\/stencil
 -- attachment is created with
 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT',
--- then the multisample resolve operation uses the sample locations state
--- specified in the @sampleLocationsInfo@ member of the element of the
+-- then the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve operation>
+-- uses the sample locations state specified in the @sampleLocationsInfo@
+-- member of the element of the
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'::@pPostSubpassSampleLocations@
 -- for the subpass.
 --
@@ -1676,7 +1627,11 @@
 -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass' used
 -- to begin the render pass instance. Otherwise, the first set of commands
 -- includes all commands submitted as part of the subpass instance
--- identified by @srcSubpass@ and any load, store or multisample resolve
+-- identified by @srcSubpass@ and any
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>,
+-- or
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve>
 -- operations on attachments used in @srcSubpass@. In either case, the
 -- first synchronization scope is limited to operations on the pipeline
 -- stages determined by the
@@ -1691,7 +1646,11 @@
 -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass' used to
 -- end the render pass instance. Otherwise, the second set of commands
 -- includes all commands submitted as part of the subpass instance
--- identified by @dstSubpass@ and any load, store or multisample resolve
+-- identified by @dstSubpass@ and any
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>,
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve>
 -- operations on attachments used in @dstSubpass@. In either case, the
 -- second synchronization scope is limited to operations on the pipeline
 -- stages determined by the
@@ -1793,7 +1752,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature is not enabled, @srcStageMask@ /must/ not be @0@
 --
--- -   #VUID-VkSubpassDependency-rayTracingPipeline-07949# If neither the
+-- -   #VUID-VkSubpassDependency-srcStageMask-07949# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -1848,7 +1807,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature is not enabled, @dstStageMask@ /must/ not be @0@
 --
--- -   #VUID-VkSubpassDependency-rayTracingPipeline-07949# If neither the
+-- -   #VUID-VkSubpassDependency-dstStageMask-07949# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -2319,28 +2278,6 @@
 --
 -- = Description
 --
--- Applications /must/ ensure that all non-attachment writes to memory
--- backing image subresources that are used as attachments that are not in
--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
--- layout in a render pass instance happen-before or happen-after the
--- render pass instance. If an image subresource is written during a render
--- pass instance by anything other than load operations, store operations,
--- and layout transitions, applications /must/ ensure that all
--- non-attachment reads from memory backing that image subresource
--- happen-before or happen-after the render pass instance. For
--- depth\/stencil images, the aspects are not treated independently for the
--- above guarantees - writes to either aspect /must/ be synchronized with
--- accesses to the other aspect.
---
--- Note
---
--- An image subresource can be used as read-only as both an attachment and
--- a non-attachment during a render pass instance, but care must still be
--- taken to avoid data races with load\/store operations and layout
--- transitions. The simplest way to achieve this is to keep the
--- non-attachment and attachment accesses within the same subpass, or to
--- avoid layout transitions and load\/store operations that perform writes.
---
 -- It is legal for a subpass to use no color or depth\/stencil attachments,
 -- either because it has no attachment references or because all of them
 -- are 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'. This kind of subpass
@@ -2355,6 +2292,9 @@
 -- is 'Vulkan.Core10.FundamentalTypes.FALSE', then all pipelines to be
 -- bound with the subpass /must/ have the same value for
 -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@.
+-- In all such cases, @rasterizationSamples@ /must/ be a bit value that is
+-- set in
+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@framebufferNoAttachmentsSampleCounts@.
 --
 -- == Valid Usage
 --
@@ -2517,6 +2457,13 @@
 --     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or
 --     greater than @layers@
 --
+-- -   #VUID-VkFramebufferCreateInfo-renderPass-08921# If @renderPass@ was
+--     specified with non-zero view masks, each element of @pAttachments@
+--     that is used as a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>
+--     /must/ have a @layerCount@ equal to @1@ or greater than the index of
+--     the most significant bit set in any of those view masks
+--
 -- -   #VUID-VkFramebufferCreateInfo-flags-04539# If @flags@ does not
 --     include
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
@@ -2796,6 +2743,34 @@
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' /must/
 --     have a format that supports the sample count specified in
 --     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @flags@ does not
+--     include
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     the format of the color attachment for each subpass in @renderPass@
+--     that includes an external format image as a resolve attachment
+--     /must/ have a format equal to the value of
+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@
+--     as returned by a call to
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID'
+--     for the Android hardware buffer that was used to create the image
+--     view use as its resolve attachment
+--
+-- -   #VUID-VkFramebufferCreateInfo-pAttachments-09350# If @flags@ does
+--     not include
+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
+--     then if an element of @pAttachments@ has a format of
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ have been
+--     created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value identical to that provided in the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     specified by the corresponding
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2'
+--     in @renderPass@
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core10/Pipeline.hs b/src/Vulkan/Core10/Pipeline.hs
--- a/src/Vulkan/Core10/Pipeline.hs
+++ b/src/Vulkan/Core10/Pipeline.hs
@@ -138,6494 +138,7222 @@
 import Vulkan.Core10.Enums.CompareOp (CompareOp)
 import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectNameInfoEXT)
-import Vulkan.Core10.Handles (Device)
-import Vulkan.Core10.Handles (Device(..))
-import Vulkan.Core10.Handles (Device(Device))
-import Vulkan.Dynamic (DeviceCmds(pVkCreateComputePipelines))
-import Vulkan.Dynamic (DeviceCmds(pVkCreateGraphicsPipelines))
-import Vulkan.Dynamic (DeviceCmds(pVkDestroyPipeline))
-import Vulkan.Core10.Handles (Device_T)
-import Vulkan.Core10.Enums.DynamicState (DynamicState)
-import Vulkan.CStruct.Extends (Extends)
-import Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.Core10.Enums.FrontFace (FrontFace)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (GraphicsPipelineLibraryCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsPipelineShaderGroupsCreateInfoNV)
-import Vulkan.Core10.Enums.LogicOp (LogicOp)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)
-import Vulkan.CStruct.Extends (PeekChain)
-import Vulkan.CStruct.Extends (PeekChain(..))
-import Vulkan.Core10.Handles (Pipeline)
-import Vulkan.Core10.Handles (Pipeline(..))
-import Vulkan.Core10.Handles (PipelineCache)
-import Vulkan.Core10.Handles (PipelineCache(..))
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)
-import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV)
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
-import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
-import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT)
-import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PipelineFragmentShadingRateEnumStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR)
-import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags)
-import Vulkan.Core10.Handles (PipelineLayout)
-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)
-import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT)
-import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobustnessCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT)
-import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)
-import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)
-import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)
-import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PipelineViewportExclusiveScissorStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportShadingRateImageStateCreateInfoNV)
-import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV)
-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV)
-import Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct.Extends (PokeChain(..))
-import Vulkan.Core10.Enums.PolygonMode (PolygonMode)
-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)
-import Vulkan.Core10.FundamentalTypes (Rect2D)
-import Vulkan.Core10.Handles (RenderPass)
-import Vulkan.Core10.Enums.Result (Result)
-import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(SampleCountFlagBits))
-import Vulkan.Core10.FundamentalTypes (SampleMask)
-import Vulkan.Core10.Handles (ShaderModule)
-import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT)
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits)
-import Vulkan.CStruct.Extends (SomeStruct)
-import Vulkan.CStruct.Extends (SomeStruct(..))
-import Vulkan.Core10.Enums.StencilOp (StencilOp)
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)
-import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)
-import Vulkan.Exception (VulkanException(..))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO))
-import Vulkan.Core10.Enums.Result (Result(SUCCESS))
-import Vulkan.Core10.Enums.BlendFactor (BlendFactor(..))
-import Vulkan.Core10.Enums.BlendOp (BlendOp(..))
-import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlagBits(..))
-import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags)
-import Vulkan.Core10.Enums.CompareOp (CompareOp(..))
-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))
-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)
-import Vulkan.Core10.Enums.DynamicState (DynamicState(..))
-import Vulkan.Core10.Enums.FrontFace (FrontFace(..))
-import Vulkan.Core10.Enums.LogicOp (LogicOp(..))
-import Vulkan.Core10.Handles (Pipeline(..))
-import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlagBits(..))
-import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(..))
-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
-import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlagBits(..))
-import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)
-import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags(..))
-import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags(..))
-import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlagBits(..))
-import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlags)
-import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags(..))
-import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags(..))
-import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(..))
-import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)
-import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags(..))
-import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags(..))
-import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags(..))
-import Vulkan.Core10.Enums.PolygonMode (PolygonMode(..))
-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))
-import Vulkan.Core10.FundamentalTypes (SampleMask)
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..))
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
-import Vulkan.Core10.Enums.StencilOp (StencilOp(..))
-import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate(..))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCreateGraphicsPipelines
-  :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result
-
--- | vkCreateGraphicsPipelines - Create graphics pipelines
---
--- = Description
---
--- The 'GraphicsPipelineCreateInfo' structure includes an array of
--- 'PipelineShaderStageCreateInfo' structures for each of the desired
--- active shader stages, as well as creation information for all relevant
--- fixed-function stages, and a pipeline layout.
---
--- == Valid Usage
---
--- -   #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member
---     of any element of @pCreateInfos@ contains the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, and the @basePipelineIndex@ member of that same element is not
---     @-1@, @basePipelineIndex@ /must/ be less than the index into
---     @pCreateInfos@ that corresponds to that element
---
--- -   #VUID-vkCreateGraphicsPipelines-flags-00721# If the @flags@ member
---     of any element of @pCreateInfos@ contains the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, the base pipeline /must/ have been created with the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'
---     flag set
---
--- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-02876# If
---     @pipelineCache@ was created with
---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',
---     host access to @pipelineCache@ /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
---
--- Note
---
--- An implicit cache may be provided by the implementation or a layer. For
--- this reason, it is still valid to set
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
--- on @flags@ for any element of @pCreateInfos@ while passing
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for @pipelineCache@.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCreateGraphicsPipelines-device-parameter# @device@ /must/ be
---     a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-parameter# If
---     @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @pipelineCache@ /must/ be a valid
---     'Vulkan.Core10.Handles.PipelineCache' handle
---
--- -   #VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter#
---     @pCreateInfos@ /must/ be a valid pointer to an array of
---     @createInfoCount@ valid 'GraphicsPipelineCreateInfo' structures
---
--- -   #VUID-vkCreateGraphicsPipelines-pAllocator-parameter# If
---     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
---     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
---     structure
---
--- -   #VUID-vkCreateGraphicsPipelines-pPipelines-parameter# @pPipelines@
---     /must/ be a valid pointer to an array of @createInfoCount@
---     'Vulkan.Core10.Handles.Pipeline' handles
---
--- -   #VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength#
---     @createInfoCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-parent# If
---     @pipelineCache@ is a valid handle, it /must/ have been created,
---     allocated, or retrieved from @device@
---
--- == Return Codes
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
---
---     -   'Vulkan.Core10.Enums.Result.SUCCESS'
---
---     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
--- 'Vulkan.Core10.Handles.Device', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'
-createGraphicsPipelines :: forall io
-                         . (MonadIO io)
-                        => -- | @device@ is the logical device that creates the graphics pipelines.
-                           Device
-                        -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',
-                           -- indicating that pipeline caching is disabled; or the handle of a valid
-                           -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>
-                           -- object, in which case use of that cache is enabled for the duration of
-                           -- the command.
-                           PipelineCache
-                        -> -- | @pCreateInfos@ is a pointer to an array of 'GraphicsPipelineCreateInfo'
-                           -- structures.
-                           ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo))
-                        -> -- | @pAllocator@ controls host memory allocation as described in the
-                           -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
-                           -- chapter.
-                           ("allocator" ::: Maybe AllocationCallbacks)
-                        -> io (Result, ("pipelines" ::: Vector Pipeline))
-createGraphicsPipelines device
-                          pipelineCache
-                          createInfos
-                          allocator = liftIO . evalContT $ do
-  let vkCreateGraphicsPipelinesPtr = pVkCreateGraphicsPipelines (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCreateGraphicsPipelinesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateGraphicsPipelines is null" Nothing Nothing
-  let vkCreateGraphicsPipelines' = mkVkCreateGraphicsPipelines vkCreateGraphicsPipelinesPtr
-  pPCreateInfos <- ContT $ allocaBytes @(GraphicsPipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 144)
-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (144 * (i)) :: Ptr (GraphicsPipelineCreateInfo _))) (e) . ($ ())) (createInfos)
-  pAllocator <- case (allocator) of
-    Nothing -> pure nullPtr
-    Just j -> ContT $ withCStruct (j)
-  pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free
-  r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines'
-                                                              (deviceHandle (device))
-                                                              (pipelineCache)
-                                                              ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))
-                                                              (forgetExtensions (pPCreateInfos))
-                                                              pAllocator
-                                                              (pPPipelines))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
-  pure $ (r, pPipelines)
-
--- | A convenience wrapper to make a compatible pair of calls to
--- 'createGraphicsPipelines' and 'destroyPipeline'
---
--- To ensure that 'destroyPipeline' is always called: pass
--- 'Control.Exception.bracket' (or the allocate function from your
--- favourite resource management library) as the last argument.
--- To just extract the pair pass '(,)' as the last argument.
---
-withGraphicsPipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
-withGraphicsPipelines device pipelineCache pCreateInfos pAllocator b =
-  b (createGraphicsPipelines device pipelineCache pCreateInfos pAllocator)
-    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device
-                                                         o1Elem
-                                                         pAllocator) o1)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCreateComputePipelines
-  :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result
-
--- | vkCreateComputePipelines - Creates a new compute pipeline object
---
--- == Valid Usage
---
--- -   #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of
---     any element of @pCreateInfos@ contains the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, and the @basePipelineIndex@ member of that same element is not
---     @-1@, @basePipelineIndex@ /must/ be less than the index into
---     @pCreateInfos@ that corresponds to that element
---
--- -   #VUID-vkCreateComputePipelines-flags-00696# If the @flags@ member of
---     any element of @pCreateInfos@ contains the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, the base pipeline /must/ have been created with the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'
---     flag set
---
--- -   #VUID-vkCreateComputePipelines-pipelineCache-02873# If
---     @pipelineCache@ was created with
---     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',
---     host access to @pipelineCache@ /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCreateComputePipelines-device-parameter# @device@ /must/ be
---     a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkCreateComputePipelines-pipelineCache-parameter# If
---     @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @pipelineCache@ /must/ be a valid
---     'Vulkan.Core10.Handles.PipelineCache' handle
---
--- -   #VUID-vkCreateComputePipelines-pCreateInfos-parameter#
---     @pCreateInfos@ /must/ be a valid pointer to an array of
---     @createInfoCount@ valid 'ComputePipelineCreateInfo' structures
---
--- -   #VUID-vkCreateComputePipelines-pAllocator-parameter# If @pAllocator@
---     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid
---     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure
---
--- -   #VUID-vkCreateComputePipelines-pPipelines-parameter# @pPipelines@
---     /must/ be a valid pointer to an array of @createInfoCount@
---     'Vulkan.Core10.Handles.Pipeline' handles
---
--- -   #VUID-vkCreateComputePipelines-createInfoCount-arraylength#
---     @createInfoCount@ /must/ be greater than @0@
---
--- -   #VUID-vkCreateComputePipelines-pipelineCache-parent# If
---     @pipelineCache@ is a valid handle, it /must/ have been created,
---     allocated, or retrieved from @device@
---
--- == Return Codes
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
---
---     -   'Vulkan.Core10.Enums.Result.SUCCESS'
---
---     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
--- 'ComputePipelineCreateInfo', 'Vulkan.Core10.Handles.Device',
--- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'
-createComputePipelines :: forall io
-                        . (MonadIO io)
-                       => -- | @device@ is the logical device that creates the compute pipelines.
-                          Device
-                       -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',
-                          -- indicating that pipeline caching is disabled; or the handle of a valid
-                          -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>
-                          -- object, in which case use of that cache is enabled for the duration of
-                          -- the command.
-                          PipelineCache
-                       -> -- | @pCreateInfos@ is a pointer to an array of 'ComputePipelineCreateInfo'
-                          -- structures.
-                          ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo))
-                       -> -- | @pAllocator@ controls host memory allocation as described in the
-                          -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
-                          -- chapter.
-                          ("allocator" ::: Maybe AllocationCallbacks)
-                       -> io (Result, ("pipelines" ::: Vector Pipeline))
-createComputePipelines device
-                         pipelineCache
-                         createInfos
-                         allocator = liftIO . evalContT $ do
-  let vkCreateComputePipelinesPtr = pVkCreateComputePipelines (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCreateComputePipelinesPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateComputePipelines is null" Nothing Nothing
-  let vkCreateComputePipelines' = mkVkCreateComputePipelines vkCreateComputePipelinesPtr
-  pPCreateInfos <- ContT $ allocaBytes @(ComputePipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 96)
-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (96 * (i)) :: Ptr (ComputePipelineCreateInfo _))) (e) . ($ ())) (createInfos)
-  pAllocator <- case (allocator) of
-    Nothing -> pure nullPtr
-    Just j -> ContT $ withCStruct (j)
-  pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free
-  r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines'
-                                                             (deviceHandle (device))
-                                                             (pipelineCache)
-                                                             ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))
-                                                             (forgetExtensions (pPCreateInfos))
-                                                             pAllocator
-                                                             (pPPipelines))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
-  pure $ (r, pPipelines)
-
--- | A convenience wrapper to make a compatible pair of calls to
--- 'createComputePipelines' and 'destroyPipeline'
---
--- To ensure that 'destroyPipeline' is always called: pass
--- 'Control.Exception.bracket' (or the allocate function from your
--- favourite resource management library) as the last argument.
--- To just extract the pair pass '(,)' as the last argument.
---
-withComputePipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
-withComputePipelines device pipelineCache pCreateInfos pAllocator b =
-  b (createComputePipelines device pipelineCache pCreateInfos pAllocator)
-    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device
-                                                         o1Elem
-                                                         pAllocator) o1)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkDestroyPipeline
-  :: FunPtr (Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()
-
--- | vkDestroyPipeline - Destroy a pipeline object
---
--- == Valid Usage
---
--- -   #VUID-vkDestroyPipeline-pipeline-00765# All submitted commands that
---     refer to @pipeline@ /must/ have completed execution
---
--- -   #VUID-vkDestroyPipeline-pipeline-00766# If
---     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
---     provided when @pipeline@ was created, a compatible set of callbacks
---     /must/ be provided here
---
--- -   #VUID-vkDestroyPipeline-pipeline-00767# If no
---     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
---     provided when @pipeline@ was created, @pAllocator@ /must/ be @NULL@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkDestroyPipeline-device-parameter# @device@ /must/ be a valid
---     'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkDestroyPipeline-pipeline-parameter# If @pipeline@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pipeline@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Pipeline' handle
---
--- -   #VUID-vkDestroyPipeline-pAllocator-parameter# If @pAllocator@ is not
---     @NULL@, @pAllocator@ /must/ be a valid pointer to a valid
---     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure
---
--- -   #VUID-vkDestroyPipeline-pipeline-parent# If @pipeline@ is a valid
---     handle, it /must/ have been created, allocated, or retrieved from
---     @device@
---
--- == Host Synchronization
---
--- -   Host access to @pipeline@ /must/ be externally synchronized
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
--- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Pipeline'
-destroyPipeline :: forall io
-                 . (MonadIO io)
-                => -- | @device@ is the logical device that destroys the pipeline.
-                   Device
-                -> -- | @pipeline@ is the handle of the pipeline to destroy.
-                   Pipeline
-                -> -- | @pAllocator@ controls host memory allocation as described in the
-                   -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
-                   -- chapter.
-                   ("allocator" ::: Maybe AllocationCallbacks)
-                -> io ()
-destroyPipeline device pipeline allocator = liftIO . evalContT $ do
-  let vkDestroyPipelinePtr = pVkDestroyPipeline (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkDestroyPipelinePtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPipeline is null" Nothing Nothing
-  let vkDestroyPipeline' = mkVkDestroyPipeline vkDestroyPipelinePtr
-  pAllocator <- case (allocator) of
-    Nothing -> pure nullPtr
-    Just j -> ContT $ withCStruct (j)
-  lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline'
-                                                 (deviceHandle (device))
-                                                 (pipeline)
-                                                 pAllocator)
-  pure $ ()
-
-
--- | VkViewport - Structure specifying a viewport
---
--- = Description
---
--- Note
---
--- Despite their names, @minDepth@ /can/ be less than, equal to, or greater
--- than @maxDepth@.
---
--- The framebuffer depth coordinate @z@f /may/ be represented using either
--- a fixed-point or floating-point representation. However, a
--- floating-point representation /must/ be used if the depth\/stencil
--- attachment has a floating-point depth component. If an m-bit fixed-point
--- representation is used, we assume that it represents each value
--- \(\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …​, 2m-1 }, as k (e.g. 1.0 is
--- represented in binary as a string of all ones).
---
--- The viewport parameters shown in the above equations are found from
--- these values as
---
--- -   ox = @x@ + @width@ \/ 2
---
--- -   oy = @y@ + @height@ \/ 2
---
--- -   oz = @minDepth@ (or (@maxDepth@ + @minDepth@) \/ 2 if
---     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@
---     is 'Vulkan.Core10.FundamentalTypes.TRUE')
---
--- -   px = @width@
---
--- -   py = @height@
---
--- -   pz = @maxDepth@ - @minDepth@ (or (@maxDepth@ - @minDepth@) \/ 2 if
---     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@
---     is 'Vulkan.Core10.FundamentalTypes.TRUE')
---
--- If a render pass transform is enabled, the values (px,py) and (ox, oy)
--- defining the viewport are transformed as described in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>
--- before participating in the viewport transform.
---
--- The application /can/ specify a negative term for @height@, which has
--- the effect of negating the y coordinate in clip space before performing
--- the transform. When using a negative @height@, the application /should/
--- also adjust the @y@ value to point to the lower left corner of the
--- viewport instead of the upper left corner. Using the negative @height@
--- allows the application to avoid having to negate the y component of the
--- @Position@ output from the last
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>.
---
--- The width and height of the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>
--- /must/ be greater than or equal to the width and height of the largest
--- image which /can/ be created and attached to a framebuffer.
---
--- The floating-point viewport bounds are represented with an
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>.
---
--- == Valid Usage
---
--- -   #VUID-VkViewport-width-01770# @width@ /must/ be greater than @0.0@
---
--- -   #VUID-VkViewport-width-01771# @width@ /must/ be less than or equal
---     to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[0]
---
--- -   #VUID-VkViewport-apiVersion-07917# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled, the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_negative_viewport_height VK_AMD_negative_viewport_height>
---     extension is not enabled, and
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
---     is less than Vulkan 1.1, @height@ /must/ be greater than @0.0@
---
--- -   #VUID-VkViewport-height-01773# The absolute value of @height@ /must/
---     be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[1]
---
--- -   #VUID-VkViewport-x-01774# @x@ /must/ be greater than or equal to
---     @viewportBoundsRange@[0]
---
--- -   #VUID-VkViewport-x-01232# (@x@ + @width@) /must/ be less than or
---     equal to @viewportBoundsRange@[1]
---
--- -   #VUID-VkViewport-y-01775# @y@ /must/ be greater than or equal to
---     @viewportBoundsRange@[0]
---
--- -   #VUID-VkViewport-y-01776# @y@ /must/ be less than or equal to
---     @viewportBoundsRange@[1]
---
--- -   #VUID-VkViewport-y-01777# (@y@ + @height@) /must/ be greater than or
---     equal to @viewportBoundsRange@[0]
---
--- -   #VUID-VkViewport-y-01233# (@y@ + @height@) /must/ be less than or
---     equal to @viewportBoundsRange@[1]
---
--- -   #VUID-VkViewport-minDepth-01234# If the
---     @VK_EXT_depth_range_unrestricted@ extension is not enabled,
---     @minDepth@ /must/ be between @0.0@ and @1.0@, inclusive
---
--- -   #VUID-VkViewport-maxDepth-01235# If the
---     @VK_EXT_depth_range_unrestricted@ extension is not enabled,
---     @maxDepth@ /must/ be between @0.0@ and @1.0@, inclusive
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
--- 'PipelineViewportStateCreateInfo',
--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',
--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'
-data Viewport = Viewport
-  { -- | @x@ and @y@ are the viewport’s upper left corner (x,y).
-    x :: Float
-  , -- No documentation found for Nested "VkViewport" "y"
-    y :: Float
-  , -- | @width@ and @height@ are the viewport’s width and height, respectively.
-    width :: Float
-  , -- No documentation found for Nested "VkViewport" "height"
-    height :: Float
-  , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport.
-    minDepth :: Float
-  , -- No documentation found for Nested "VkViewport" "maxDepth"
-    maxDepth :: Float
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (Viewport)
-#endif
-deriving instance Show Viewport
-
-instance ToCStruct Viewport where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p Viewport{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (x))
-    poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (y))
-    poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (width))
-    poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (height))
-    poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (minDepth))
-    poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (maxDepth))
-    f
-  cStructSize = 24
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (zero))
-    f
-
-instance FromCStruct Viewport where
-  peekCStruct p = do
-    x <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
-    y <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))
-    width <- peek @CFloat ((p `plusPtr` 8 :: Ptr CFloat))
-    height <- peek @CFloat ((p `plusPtr` 12 :: Ptr CFloat))
-    minDepth <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))
-    maxDepth <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))
-    pure $ Viewport
-             (coerce @CFloat @Float x)
-             (coerce @CFloat @Float y)
-             (coerce @CFloat @Float width)
-             (coerce @CFloat @Float height)
-             (coerce @CFloat @Float minDepth)
-             (coerce @CFloat @Float maxDepth)
-
-instance Storable Viewport where
-  sizeOf ~_ = 24
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero Viewport where
-  zero = Viewport
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkSpecializationMapEntry - Structure specifying a specialization map
--- entry
---
--- = Description
---
--- If a @constantID@ value is not a specialization constant ID used in the
--- shader, that map entry does not affect the behavior of the pipeline.
---
--- == Valid Usage
---
--- -   #VUID-VkSpecializationMapEntry-constantID-00776# For a @constantID@
---     specialization constant declared in a shader, @size@ /must/ match
---     the byte size of the @constantID@. If the specialization constant is
---     of type @boolean@, @size@ /must/ be the byte size of
---     'Vulkan.Core10.FundamentalTypes.Bool32'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'SpecializationInfo'
-data SpecializationMapEntry = SpecializationMapEntry
-  { -- | @constantID@ is the ID of the specialization constant in SPIR-V.
-    constantID :: Word32
-  , -- | @offset@ is the byte offset of the specialization constant value within
-    -- the supplied data buffer.
-    offset :: Word32
-  , -- | @size@ is the byte size of the specialization constant value within the
-    -- supplied data buffer.
-    size :: Word64
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (SpecializationMapEntry)
-#endif
-deriving instance Show SpecializationMapEntry
-
-instance ToCStruct SpecializationMapEntry where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p SpecializationMapEntry{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (constantID)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (offset)
-    poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (size))
-    f
-  cStructSize = 16
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (zero))
-    f
-
-instance FromCStruct SpecializationMapEntry where
-  peekCStruct p = do
-    constantID <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    offset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))
-    pure $ SpecializationMapEntry
-             constantID offset (coerce @CSize @Word64 size)
-
-instance Storable SpecializationMapEntry where
-  sizeOf ~_ = 16
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero SpecializationMapEntry where
-  zero = SpecializationMapEntry
-           zero
-           zero
-           zero
-
-
--- | VkSpecializationInfo - Structure specifying specialization information
---
--- == Valid Usage
---
--- -   #VUID-VkSpecializationInfo-offset-00773# The @offset@ member of each
---     element of @pMapEntries@ /must/ be less than @dataSize@
---
--- -   #VUID-VkSpecializationInfo-pMapEntries-00774# The @size@ member of
---     each element of @pMapEntries@ /must/ be less than or equal to
---     @dataSize@ minus @offset@
---
--- -   #VUID-VkSpecializationInfo-constantID-04911# The @constantID@ value
---     of each element of @pMapEntries@ /must/ be unique within
---     @pMapEntries@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkSpecializationInfo-pMapEntries-parameter# If @mapEntryCount@
---     is not @0@, @pMapEntries@ /must/ be a valid pointer to an array of
---     @mapEntryCount@ valid 'SpecializationMapEntry' structures
---
--- -   #VUID-VkSpecializationInfo-pData-parameter# If @dataSize@ is not
---     @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@
---     bytes
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'PipelineShaderStageCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT',
--- 'SpecializationMapEntry'
-data SpecializationInfo = SpecializationInfo
-  { -- | @pMapEntries@ is a pointer to an array of 'SpecializationMapEntry'
-    -- structures, which map constant IDs to offsets in @pData@.
-    mapEntries :: Vector SpecializationMapEntry
-  , -- | @dataSize@ is the byte size of the @pData@ buffer.
-    dataSize :: Word64
-  , -- | @pData@ contains the actual constant values to specialize with.
-    data' :: Ptr ()
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (SpecializationInfo)
-#endif
-deriving instance Show SpecializationInfo
-
-instance ToCStruct SpecializationInfo where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p SpecializationInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (mapEntries)) :: Word32))
-    pPMapEntries' <- ContT $ allocaBytes @SpecializationMapEntry ((Data.Vector.length (mapEntries)) * 16)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPMapEntries' `plusPtr` (16 * (i)) :: Ptr SpecializationMapEntry) (e)) (mapEntries)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry))) (pPMapEntries')
-    lift $ poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')
-    lift $ f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
-    f
-
-instance FromCStruct SpecializationInfo where
-  peekCStruct p = do
-    mapEntryCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    pMapEntries <- peek @(Ptr SpecializationMapEntry) ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry)))
-    pMapEntries' <- generateM (fromIntegral mapEntryCount) (\i -> peekCStruct @SpecializationMapEntry ((pMapEntries `advancePtrBytes` (16 * (i)) :: Ptr SpecializationMapEntry)))
-    dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
-    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
-    pure $ SpecializationInfo
-             pMapEntries' (coerce @CSize @Word64 dataSize) pData
-
-instance Zero SpecializationInfo where
-  zero = SpecializationInfo
-           mempty
-           zero
-           zero
-
-
--- | VkPipelineShaderStageCreateInfo - Structure specifying parameters of a
--- newly created pipeline shader stage
---
--- = Description
---
--- If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
--- feature is enabled and an instance of
--- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' is included in the @pNext@
--- chain, @module@ /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. If
--- @module@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader
--- code used by the pipeline is defined by @module@. If @module@ is
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader code is defined by
--- the chained 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' if present.
---
--- If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifier shaderModuleIdentifier>
--- feature is enabled, applications /can/ omit shader code for @stage@ and
--- instead provide a module identifier. This is done by including a
--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'
--- struct with @identifierSize@ not equal to 0 in the @pNext@ chain. A
--- shader stage created in this way is equivalent to one created using a
--- shader module with the same identifier. The identifier allows an
--- implementation to look up a pipeline without consuming a valid SPIR-V
--- module. If a pipeline is not found, pipeline compilation is not possible
--- and the implementation /must/ fail as specified by
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'.
---
--- When an identifier is used in lieu of a shader module, implementations
--- /may/ fail pipeline compilation with
--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' for any reason.
---
--- Note
---
--- The rationale for the relaxed requirement on implementations to return a
--- pipeline with
--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'
--- is that layers or tools may intercept pipeline creation calls and
--- require the full SPIR-V context to operate correctly. ICDs are not
--- expected to fail pipeline compilation if the pipeline exists in a cache
--- somewhere.
---
--- Applications /can/ use identifiers when creating pipelines with
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'.
--- When creating such pipelines, 'Vulkan.Core10.Enums.Result.SUCCESS' /may/
--- be returned, but subsequently fail when referencing the pipeline in a
--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
--- struct. Applications /must/ allow pipeline compilation to fail during
--- link steps with
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
--- as it /may/ not be possible to determine if a pipeline /can/ be created
--- from identifiers until the link step.
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00704# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @stage@ /must/ not be
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00705# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @stage@ /must/ not be
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02091# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShaders>
---     feature is not enabled, @stage@ /must/ not be
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02092# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShaders>
---     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',
---     or 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pName-00707# @pName@ /must/ be
---     the name of an @OpEntryPoint@ in @module@ with an execution model
---     that matches @stage@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708# If the
---     identified entry point includes any variable in its interface that
---     is declared with the @ClipDistance@ @BuiltIn@ decoration, that
---     variable /must/ not have an array size greater than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxClipDistances@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709# If the
---     identified entry point includes any variable in its interface that
---     is declared with the @CullDistance@ @BuiltIn@ decoration, that
---     variable /must/ not have an array size greater than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCullDistances@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710#
---     If the identified entry point includes any variables in its
---     interface that are declared with the @ClipDistance@ or
---     @CullDistance@ @BuiltIn@ decoration, those variables /must/ not have
---     array sizes which sum to more than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCombinedClipAndCullDistances@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711# If
---     the identified entry point includes any variable in its interface
---     that is declared with the
---     'Vulkan.Core10.FundamentalTypes.SampleMask' @BuiltIn@ decoration,
---     that variable /must/ not have an array size greater than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSampleMaskWords@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00712# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',
---     the identified entry point /must/ not include any input variable in
---     its interface that is decorated with @CullDistance@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00713# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
---     and the identified entry point has an @OpExecutionMode@ instruction
---     specifying a patch size with @OutputVertices@, the patch size /must/
---     be greater than @0@ and less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00714# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',
---     the identified entry point /must/ have an @OpExecutionMode@
---     instruction specifying a maximum output vertex count that is greater
---     than @0@ and less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryOutputVertices@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00715# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',
---     the identified entry point /must/ have an @OpExecutionMode@
---     instruction specifying an invocation count that is greater than @0@
---     and less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is
---     either
---     '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',
---     and the identified entry point writes to @Layer@ for any primitive,
---     it /must/ write the same value to @Layer@ for all vertices of a
---     given primitive
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02597# If @stage@ is
---     either
---     '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',
---     and the identified entry point writes to @ViewportIndex@ for any
---     primitive, it /must/ write the same value to @ViewportIndex@ for all
---     vertices of a given primitive
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00718# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
---     the identified entry point /must/ not include any output variables
---     in its interface decorated with @CullDistance@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06685# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
---     and the identified entry point writes to @FragDepth@ in any
---     execution path, all execution paths that are not exclusive to helper
---     invocations /must/ either discard the fragment, or write or
---     initialize the value of @FragDepth@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06686# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
---     and the identified entry point writes to @FragStencilRefEXT@ in any
---     execution path, all execution paths that are not exclusive to helper
---     invocations /must/ either discard the fragment, or write or
---     initialize the value of @FragStencilRefEXT@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02784# If @flags@ has
---     the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
---     flag set, the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>
---     feature /must/ be enabled
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02785# If @flags@ has
---     the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
---     flag set, the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>
---     feature /must/ be enabled
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02754# If a
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
---     structure is included in the @pNext@ chain, @flags@ /must/ not have
---     the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
---     flag set
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02755# If a
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
---     structure is included in the @pNext@ chain, the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>
---     feature /must/ be enabled, and @stage@ /must/ be a valid bit
---     specified in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages>
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02756# If a
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
---     structure is included in the @pNext@ chain and @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
---     the local workgroup size of the shader /must/ be less than or equal
---     to the product of
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@
---     and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02757# If a
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
---     structure is included in the @pNext@ chain, and @flags@ has the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
---     flag set, the local workgroup size in the X dimension of the
---     pipeline /must/ be a multiple of
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02758# If @flags@ has
---     both the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
---     and
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
---     flags set, the local workgroup size in the X dimension of the
---     pipeline /must/ be a multiple of
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02759# If @flags@ has
---     the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
---     flag set and @flags@ does not have the
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
---     flag set and no
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
---     structure is included in the @pNext@ chain, the local workgroup size
---     in the X dimension of the pipeline /must/ be a multiple of
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06844# If a shader
---     module identifier is specified for this @stage@, a
---     'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure /must/ not
---     be present in the @pNext@ chain
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06845# If a shader
---     module identifier is not specified for this @stage@, @module@ /must/
---     be a valid 'Vulkan.Core10.Handles.ShaderModule' or there /must/ be a
---     valid 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure in the
---     @pNext@ chain
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06846# If a shader
---     module identifier is not specified for this @stage@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
---     feature is not enabled, @module@ /must/ be a valid
---     'Vulkan.Core10.Handles.ShaderModule'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06848# If a shader
---     module identifier is specified for this @stage@, @module@ /must/ be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849# If
---     a shader module identifier is not specified, the shader code used by
---     the pipeline /must/ be valid as described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
---     after applying the specializations provided in
---     @pSpecializationInfo@, if any, and then converting all
---     specialization constants into fixed constants
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-pNext# Each @pNext@
---     member of any structure (including this one) in the @pNext@ chain
---     /must/ be either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',
---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT',
---     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo',
---     'Vulkan.Core10.Shader.ShaderModuleCreateInfo', or
---     'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT'
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-sType-unique# The @sType@
---     value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-flags-parameter# @flags@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'
---     values
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-stage-parameter# @stage@
---     /must/ be a valid
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-module-parameter# If @module@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @module@ /must/ be
---     a valid 'Vulkan.Core10.Handles.ShaderModule' handle
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pName-parameter# @pName@
---     /must/ be a null-terminated UTF-8 string
---
--- -   #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter#
---     If @pSpecializationInfo@ is not @NULL@, @pSpecializationInfo@ /must/
---     be a valid pointer to a valid 'SpecializationInfo' structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'ComputePipelineCreateInfo', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlags',
--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
--- 'Vulkan.Core10.Handles.ShaderModule',
--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits',
--- 'SpecializationInfo', 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'
-    -- specifying how the pipeline shader stage will be generated.
-    flags :: PipelineShaderStageCreateFlags
-  , -- | @stage@ is a
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value
-    -- specifying a single pipeline stage.
-    stage :: ShaderStageFlagBits
-  , -- | @module@ is optionally a 'Vulkan.Core10.Handles.ShaderModule' object
-    -- containing the shader code for this stage.
-    module' :: ShaderModule
-  , -- | @pName@ is a pointer to a null-terminated UTF-8 string specifying the
-    -- entry point name of the shader for this stage.
-    name :: ByteString
-  , -- | @pSpecializationInfo@ is a pointer to a 'SpecializationInfo' structure,
-    -- as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,
-    -- or @NULL@.
-    specializationInfo :: Maybe SpecializationInfo
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineShaderStageCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineShaderStageCreateInfo es)
-
-instance Extensible PipelineShaderStageCreateInfo where
-  extensibleTypeName = "PipelineShaderStageCreateInfo"
-  setNext PipelineShaderStageCreateInfo{..} next' = PipelineShaderStageCreateInfo{next = next', ..}
-  getNext PipelineShaderStageCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineShaderStageModuleIdentifierCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f
-    | Just Refl <- eqT @e @DebugUtilsObjectNameInfoEXT = Just f
-    | Just Refl <- eqT @e @ShaderModuleValidationCacheCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @(ShaderModuleCreateInfo '[]) = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineShaderStageCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineShaderStageCreateInfo es) where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineShaderStageCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (stage)
-    lift $ poke ((p `plusPtr` 24 :: Ptr ShaderModule)) (module')
-    pName'' <- ContT $ useAsCString (name)
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''
-    pSpecializationInfo'' <- case (specializationInfo) of
-      Nothing -> pure nullPtr
-      Just j -> ContT $ withCStruct (j)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo))) pSpecializationInfo''
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (zero)
-    pName'' <- ContT $ useAsCString (mempty)
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''
-    lift $ f
-
-instance ( Extendss PipelineShaderStageCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineShaderStageCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineShaderStageCreateFlags ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags))
-    stage <- peek @ShaderStageFlagBits ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits))
-    module' <- peek @ShaderModule ((p `plusPtr` 24 :: Ptr ShaderModule))
-    pName <- packCString =<< peek ((p `plusPtr` 32 :: Ptr (Ptr CChar)))
-    pSpecializationInfo <- peek @(Ptr SpecializationInfo) ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo)))
-    pSpecializationInfo' <- maybePeek (\j -> peekCStruct @SpecializationInfo (j)) pSpecializationInfo
-    pure $ PipelineShaderStageCreateInfo
-             next flags stage module' pName pSpecializationInfo'
-
-instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where
-  zero = PipelineShaderStageCreateInfo
-           ()
-           zero
-           zero
-           zero
-           mempty
-           Nothing
-
-
--- | VkComputePipelineCreateInfo - Structure specifying parameters of a newly
--- created compute pipeline
---
--- = Description
---
--- The parameters @basePipelineHandle@ and @basePipelineIndex@ are
--- described in more detail in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
---
--- == Valid Usage
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-07984# If @flags@ contains
---     the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
---     a valid handle to a compute 'Vulkan.Core10.Handles.Pipeline'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-07985# If @flags@ contains
---     the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, and @basePipelineHandle@ is
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/
---     be a valid index into the calling command’s @pCreateInfos@ parameter
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-07986# If @flags@ contains
---     the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, @basePipelineIndex@ /must/ be -1 or @basePipelineHandle@
---     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkComputePipelineCreateInfo-layout-07987# If a push constant
---     block is declared in a shader, a push constant range in @layout@
---     /must/ match both the shader stage and range
---
--- -   #VUID-VkComputePipelineCreateInfo-layout-07988# If a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
---     is declared in a shader, a descriptor slot in @layout@ /must/ match
---     the shader stage
---
--- -   #VUID-VkComputePipelineCreateInfo-layout-07990# If a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
---     is declared in a shader, and the descriptor type is not
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a
---     descriptor slot in @layout@ /must/ match the descriptor type
---
--- -   #VUID-VkComputePipelineCreateInfo-layout-07991# If a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
---     is declared in a shader as an array, a descriptor slot in @layout@
---     /must/ match the descriptor count
---
--- -   #VUID-VkComputePipelineCreateInfo-stage-00701# The @stage@ member of
---     @stage@ /must/ be
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
---
--- -   #VUID-VkComputePipelineCreateInfo-stage-00702# The shader code for
---     the entry point identified by @stage@ and the rest of the state
---     identified by this structure /must/ adhere to the pipeline linking
---     rules described in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
---     chapter
---
--- -   #VUID-VkComputePipelineCreateInfo-layout-01687# The number of
---     resources in @layout@ accessible to the compute shader stage /must/
---     be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03364# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03365# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03366# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03367# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03368# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03369# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03370# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-03576# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-04945# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-02874# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
---
--- -   #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'
---
--- -   #VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566#
---     If
---     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@
---     is not @0@, it /must/ be @1@
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-07367# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-07996# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkComputePipelineCreateInfo-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO'
---
--- -   #VUID-VkComputePipelineCreateInfo-pNext-pNext# Each @pNext@ member
---     of any structure (including this one) in the @pNext@ chain /must/ be
---     either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
---     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',
---     or
---     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI'
---
--- -   #VUID-VkComputePipelineCreateInfo-sType-unique# The @sType@ value of
---     each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkComputePipelineCreateInfo-flags-parameter# @flags@ /must/ be
---     a valid combination of
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
---     values
---
--- -   #VUID-VkComputePipelineCreateInfo-stage-parameter# @stage@ /must/ be
---     a valid 'PipelineShaderStageCreateInfo' structure
---
--- -   #VUID-VkComputePipelineCreateInfo-layout-parameter# @layout@ /must/
---     be a valid 'Vulkan.Core10.Handles.PipelineLayout' handle
---
--- -   #VUID-VkComputePipelineCreateInfo-commonparent# Both of
---     @basePipelineHandle@, and @layout@ that are valid handles of
---     non-ignored parameters /must/ have been created, allocated, or
---     retrieved from the same 'Vulkan.Core10.Handles.Device'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Pipeline',
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',
--- 'Vulkan.Core10.Handles.PipelineLayout', 'PipelineShaderStageCreateInfo',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'createComputePipelines'
-data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
-    -- specifying how the pipeline will be generated.
-    flags :: PipelineCreateFlags
-  , -- | @stage@ is a 'PipelineShaderStageCreateInfo' structure describing the
-    -- compute shader.
-    stage :: SomeStruct PipelineShaderStageCreateInfo
-  , -- | @layout@ is the description of binding locations used by both the
-    -- pipeline and descriptor sets used with the pipeline.
-    layout :: PipelineLayout
-  , -- | @basePipelineHandle@ is a pipeline to derive from
-    basePipelineHandle :: Pipeline
-  , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use
-    -- as a pipeline to derive from
-    basePipelineIndex :: Int32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ComputePipelineCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (ComputePipelineCreateInfo es)
-
-instance Extensible ComputePipelineCreateInfo where
-  extensibleTypeName = "ComputePipelineCreateInfo"
-  setNext ComputePipelineCreateInfo{..} next' = ComputePipelineCreateInfo{next = next', ..}
-  getNext ComputePipelineCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ComputePipelineCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f
-    | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f
-    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
-    | otherwise = Nothing
-
-instance ( Extendss ComputePipelineCreateInfo es
-         , PokeChain es ) => ToCStruct (ComputePipelineCreateInfo es) where
-  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ComputePipelineCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) (flags)
-    ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) (stage) . ($ ())
-    lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (layout)
-    lift $ poke ((p `plusPtr` 80 :: Ptr Pipeline)) (basePipelineHandle)
-    lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (basePipelineIndex)
-    lift $ f
-  cStructSize = 96
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) ((SomeStruct zero)) . ($ ())
-    lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (zero)
-    lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (zero)
-    lift $ f
-
-instance ( Extendss ComputePipelineCreateInfo es
-         , PeekChain es ) => FromCStruct (ComputePipelineCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
-    stage <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _))))
-    layout <- peek @PipelineLayout ((p `plusPtr` 72 :: Ptr PipelineLayout))
-    basePipelineHandle <- peek @Pipeline ((p `plusPtr` 80 :: Ptr Pipeline))
-    basePipelineIndex <- peek @Int32 ((p `plusPtr` 88 :: Ptr Int32))
-    pure $ ComputePipelineCreateInfo
-             next flags stage layout basePipelineHandle basePipelineIndex
-
-instance es ~ '[] => Zero (ComputePipelineCreateInfo es) where
-  zero = ComputePipelineCreateInfo
-           ()
-           zero
-           (SomeStruct zero)
-           zero
-           zero
-           zero
-
-
--- | VkVertexInputBindingDescription - Structure specifying vertex input
--- binding description
---
--- == Valid Usage
---
--- -   #VUID-VkVertexInputBindingDescription-binding-00618# @binding@
---     /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
---
--- -   #VUID-VkVertexInputBindingDescription-stride-00619# @stride@ /must/
---     be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@
---
--- -   #VUID-VkVertexInputBindingDescription-stride-04456# If the
---     @VK_KHR_portability_subset@ extension is enabled, @stride@ /must/ be
---     a multiple of, and at least as large as,
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR'::@minVertexInputBindingStrideAlignment@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkVertexInputBindingDescription-inputRate-parameter#
---     @inputRate@ /must/ be a valid
---     'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'PipelineVertexInputStateCreateInfo',
--- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'
-data VertexInputBindingDescription = VertexInputBindingDescription
-  { -- | @binding@ is the binding number that this structure describes.
-    binding :: Word32
-  , -- | @stride@ is the byte stride between consecutive elements within the
-    -- buffer.
-    stride :: Word32
-  , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'
-    -- value specifying whether vertex attribute addressing is a function of
-    -- the vertex index or of the instance index.
-    inputRate :: VertexInputRate
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (VertexInputBindingDescription)
-#endif
-deriving instance Show VertexInputBindingDescription
-
-instance ToCStruct VertexInputBindingDescription where
-  withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p VertexInputBindingDescription{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (stride)
-    poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (inputRate)
-    f
-  cStructSize = 12
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (zero)
-    f
-
-instance FromCStruct VertexInputBindingDescription where
-  peekCStruct p = do
-    binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    stride <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    inputRate <- peek @VertexInputRate ((p `plusPtr` 8 :: Ptr VertexInputRate))
-    pure $ VertexInputBindingDescription
-             binding stride inputRate
-
-instance Storable VertexInputBindingDescription where
-  sizeOf ~_ = 12
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero VertexInputBindingDescription where
-  zero = VertexInputBindingDescription
-           zero
-           zero
-           zero
-
-
--- | VkVertexInputAttributeDescription - Structure specifying vertex input
--- attribute description
---
--- == Valid Usage
---
--- -   #VUID-VkVertexInputAttributeDescription-location-00620# @location@
---     /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@
---
--- -   #VUID-VkVertexInputAttributeDescription-binding-00621# @binding@
---     /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
---
--- -   #VUID-VkVertexInputAttributeDescription-offset-00622# @offset@
---     /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@
---
--- -   #VUID-VkVertexInputAttributeDescription-format-00623# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     of @format@ /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'
---
--- -   #VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457#
---     If the @VK_KHR_portability_subset@ extension is enabled, and
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus
---     the size of the vertex attribute data described by @format@ /must/
---     not be greater than @stride@ in the 'VertexInputBindingDescription'
---     referenced in @binding@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkVertexInputAttributeDescription-format-parameter# @format@
---     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Enums.Format.Format',
--- 'PipelineVertexInputStateCreateInfo'
-data VertexInputAttributeDescription = VertexInputAttributeDescription
-  { -- | @location@ is the shader input location number for this attribute.
-    location :: Word32
-  , -- | @binding@ is the binding number which this attribute takes its data
-    -- from.
-    binding :: Word32
-  , -- | @format@ is the size and type of the vertex attribute data.
-    format :: Format
-  , -- | @offset@ is a byte offset of this attribute relative to the start of an
-    -- element in the vertex input binding.
-    offset :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (VertexInputAttributeDescription)
-#endif
-deriving instance Show VertexInputAttributeDescription
-
-instance ToCStruct VertexInputAttributeDescription where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p VertexInputAttributeDescription{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (location)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (binding)
-    poke ((p `plusPtr` 8 :: Ptr Format)) (format)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (offset)
-    f
-  cStructSize = 16
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr Format)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct VertexInputAttributeDescription where
-  peekCStruct p = do
-    location <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    binding <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    format <- peek @Format ((p `plusPtr` 8 :: Ptr Format))
-    offset <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
-    pure $ VertexInputAttributeDescription
-             location binding format offset
-
-instance Storable VertexInputAttributeDescription where
-  sizeOf ~_ = 16
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero VertexInputAttributeDescription where
-  zero = VertexInputAttributeDescription
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPipelineVertexInputStateCreateInfo - Structure specifying parameters
--- of a newly created pipeline vertex input state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613#
---     @vertexBindingDescriptionCount@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614#
---     @vertexAttributeDescriptionCount@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-binding-00615# For every
---     @binding@ specified by each element of
---     @pVertexAttributeDescriptions@, a 'VertexInputBindingDescription'
---     /must/ exist in @pVertexBindingDescriptions@ with the same value of
---     @binding@
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616#
---     All elements of @pVertexBindingDescriptions@ /must/ describe
---     distinct binding numbers
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617#
---     All elements of @pVertexAttributeDescriptions@ /must/ describe
---     distinct attribute locations
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext# @pNext@
---     /must/ be @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT'
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-sType-unique# The @sType@
---     value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask#
---     @flags@ /must/ be @0@
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter#
---     If @vertexBindingDescriptionCount@ is not @0@,
---     @pVertexBindingDescriptions@ /must/ be a valid pointer to an array
---     of @vertexBindingDescriptionCount@ valid
---     'VertexInputBindingDescription' structures
---
--- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter#
---     If @vertexAttributeDescriptionCount@ is not @0@,
---     @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array
---     of @vertexAttributeDescriptionCount@ valid
---     'VertexInputAttributeDescription' structures
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
--- 'Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags.PipelineVertexInputStateCreateFlags',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'VertexInputAttributeDescription', 'VertexInputBindingDescription'
-data PipelineVertexInputStateCreateInfo (es :: [Type]) = PipelineVertexInputStateCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is reserved for future use.
-    flags :: PipelineVertexInputStateCreateFlags
-  , -- | @pVertexBindingDescriptions@ is a pointer to an array of
-    -- 'VertexInputBindingDescription' structures.
-    vertexBindingDescriptions :: Vector VertexInputBindingDescription
-  , -- | @pVertexAttributeDescriptions@ is a pointer to an array of
-    -- 'VertexInputAttributeDescription' structures.
-    vertexAttributeDescriptions :: Vector VertexInputAttributeDescription
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineVertexInputStateCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineVertexInputStateCreateInfo es)
-
-instance Extensible PipelineVertexInputStateCreateInfo where
-  extensibleTypeName = "PipelineVertexInputStateCreateInfo"
-  setNext PipelineVertexInputStateCreateInfo{..} next' = PipelineVertexInputStateCreateInfo{next = next', ..}
-  getNext PipelineVertexInputStateCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineVertexInputStateCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineVertexInputStateCreateInfo es) where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineVertexInputStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32))
-    pPVertexBindingDescriptions' <- ContT $ allocaBytes @VertexInputBindingDescription ((Data.Vector.length (vertexBindingDescriptions)) * 12)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions' `plusPtr` (12 * (i)) :: Ptr VertexInputBindingDescription) (e)) (vertexBindingDescriptions)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription))) (pPVertexBindingDescriptions')
-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32))
-    pPVertexAttributeDescriptions' <- ContT $ allocaBytes @VertexInputAttributeDescription ((Data.Vector.length (vertexAttributeDescriptions)) * 16)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions' `plusPtr` (16 * (i)) :: Ptr VertexInputAttributeDescription) (e)) (vertexAttributeDescriptions)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription))) (pPVertexAttributeDescriptions')
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ f
-
-instance ( Extendss PipelineVertexInputStateCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineVertexInputStateCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineVertexInputStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags))
-    vertexBindingDescriptionCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pVertexBindingDescriptions <- peek @(Ptr VertexInputBindingDescription) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription)))
-    pVertexBindingDescriptions' <- generateM (fromIntegral vertexBindingDescriptionCount) (\i -> peekCStruct @VertexInputBindingDescription ((pVertexBindingDescriptions `advancePtrBytes` (12 * (i)) :: Ptr VertexInputBindingDescription)))
-    vertexAttributeDescriptionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    pVertexAttributeDescriptions <- peek @(Ptr VertexInputAttributeDescription) ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription)))
-    pVertexAttributeDescriptions' <- generateM (fromIntegral vertexAttributeDescriptionCount) (\i -> peekCStruct @VertexInputAttributeDescription ((pVertexAttributeDescriptions `advancePtrBytes` (16 * (i)) :: Ptr VertexInputAttributeDescription)))
-    pure $ PipelineVertexInputStateCreateInfo
-             next
-             flags
-             pVertexBindingDescriptions'
-             pVertexAttributeDescriptions'
-
-instance es ~ '[] => Zero (PipelineVertexInputStateCreateInfo es) where
-  zero = PipelineVertexInputStateCreateInfo
-           ()
-           zero
-           mempty
-           mempty
-
-
--- | VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters
--- of a newly created pipeline input assembly state
---
--- = Description
---
--- Restarting the assembly of primitives discards the most recent index
--- values if those elements formed an incomplete primitive, and restarts
--- the primitive assembly using the subsequent indices, but only assembling
--- the immediately following element through the end of the originally
--- specified elements. The primitive restart index value comparison is
--- performed before adding the @vertexOffset@ value to the index value.
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252# If
---     @topology@ is
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST',
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY'
---     or
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY',
---     and @primitiveRestartEnable@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
---     feature /must/ be enabled
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If
---     @topology@ is
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     and @primitiveRestartEnable@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>
---     feature /must/ be enabled
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @topology@ /must/ not be any of
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY',
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY',
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY'
---     or
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY'
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is not enabled, @topology@ /must/ not be
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452# If
---     the @VK_KHR_portability_subset@ extension is enabled, and
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', @topology@ /must/ not be
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_FAN'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext# @pNext@
---     /must/ be @NULL@
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask#
---     @flags@ /must/ be @0@
---
--- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter#
---     @topology@ /must/ be a valid
---     'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags.PipelineInputAssemblyStateCreateFlags',
--- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo
-  { -- | @flags@ is reserved for future use.
-    flags :: PipelineInputAssemblyStateCreateFlags
-  , -- | @topology@ is a
-    -- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' defining the
-    -- primitive topology, as described below.
-    topology :: PrimitiveTopology
-  , -- | @primitiveRestartEnable@ controls whether a special vertex index value
-    -- is treated as restarting the assembly of primitives. This enable only
-    -- applies to indexed draws
-    -- ('Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed',
-    -- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiIndexedEXT', and
-    -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'), and the
-    -- special index value is either 0xFFFFFFFF when the @indexType@ parameter
-    -- of 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' is equal to
-    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', 0xFF when @indexType@
-    -- is equal to 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', or
-    -- 0xFFFF when @indexType@ is equal to
-    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16'. Primitive restart is
-    -- not allowed for “list” topologies, unless one of the features
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>
-    -- (for
-    -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST')
-    -- or
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
-    -- (for all other list topologies) is enabled.
-    primitiveRestartEnable :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineInputAssemblyStateCreateInfo)
-#endif
-deriving instance Show PipelineInputAssemblyStateCreateInfo
-
-instance ToCStruct PipelineInputAssemblyStateCreateInfo where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineInputAssemblyStateCreateInfo{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags)) (flags)
-    poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (topology)
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (primitiveRestartEnable))
-    f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PipelineInputAssemblyStateCreateInfo where
-  peekCStruct p = do
-    flags <- peek @PipelineInputAssemblyStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags))
-    topology <- peek @PrimitiveTopology ((p `plusPtr` 20 :: Ptr PrimitiveTopology))
-    primitiveRestartEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
-    pure $ PipelineInputAssemblyStateCreateInfo
-             flags topology (bool32ToBool primitiveRestartEnable)
-
-instance Storable PipelineInputAssemblyStateCreateInfo where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PipelineInputAssemblyStateCreateInfo where
-  zero = PipelineInputAssemblyStateCreateInfo
-           zero
-           zero
-           zero
-
-
--- | VkPipelineTessellationStateCreateInfo - Structure specifying parameters
--- of a newly created pipeline tessellation state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214#
---     @patchControlPoints@ /must/ be greater than zero and less than or
---     equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineTessellationStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext# @pNext@
---     /must/ be @NULL@ or a pointer to a valid instance of
---     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'
---
--- -   #VUID-VkPipelineTessellationStateCreateInfo-sType-unique# The
---     @sType@ value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask#
---     @flags@ /must/ be @0@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
--- 'Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags.PipelineTessellationStateCreateFlags',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineTessellationStateCreateInfo (es :: [Type]) = PipelineTessellationStateCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is reserved for future use.
-    flags :: PipelineTessellationStateCreateFlags
-  , -- | @patchControlPoints@ is the number of control points per patch.
-    patchControlPoints :: Word32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineTessellationStateCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineTessellationStateCreateInfo es)
-
-instance Extensible PipelineTessellationStateCreateInfo where
-  extensibleTypeName = "PipelineTessellationStateCreateInfo"
-  setNext PipelineTessellationStateCreateInfo{..} next' = PipelineTessellationStateCreateInfo{next = next', ..}
-  getNext PipelineTessellationStateCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineTessellationStateCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineTessellationDomainOriginStateCreateInfo = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineTessellationStateCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineTessellationStateCreateInfo es) where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineTessellationStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (patchControlPoints)
-    lift $ f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
-    lift $ f
-
-instance ( Extendss PipelineTessellationStateCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineTessellationStateCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineTessellationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags))
-    patchControlPoints <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pure $ PipelineTessellationStateCreateInfo
-             next flags patchControlPoints
-
-instance es ~ '[] => Zero (PipelineTessellationStateCreateInfo es) where
-  zero = PipelineTessellationStateCreateInfo
-           ()
-           zero
-           zero
-
-
--- | VkPipelineViewportStateCreateInfo - Structure specifying parameters of a
--- newly created pipeline viewport state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
---     feature is not enabled, @viewportCount@ /must/ not be greater than
---     @1@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
---     feature is not enabled, @scissorCount@ /must/ not be greater than
---     @1@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218#
---     @viewportCount@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219#
---     @scissorCount@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-x-02821# The @x@ and @y@
---     members of @offset@ member of any element of @pScissors@ /must/ be
---     greater than or equal to @0@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-offset-02822# Evaluation of
---     (@offset.x@ + @extent.width@) /must/ not cause a signed integer
---     addition overflow for any element of @pScissors@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-offset-02823# Evaluation of
---     (@offset.y@ + @extent.height@) /must/ not cause a signed integer
---     addition overflow for any element of @pScissors@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If the
---     graphics pipeline is being created without
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
---     set then @scissorCount@ and @viewportCount@ /must/ be identical
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the
---     graphics pipeline is being created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     set then @viewportCount@ /must/ be @0@, otherwise it /must/ be
---     greater than @0@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the
---     graphics pipeline is being created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
---     set then @scissorCount@ /must/ be @0@, otherwise it /must/ be
---     greater than @0@
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726#
---     If the @viewportWScalingEnable@ member of a
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
---     structure included in the @pNext@ chain is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the @viewportCount@ member of
---     the
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
---     structure /must/ be greater than or equal to
---     'PipelineViewportStateCreateInfo'::@viewportCount@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-sType-sType# @sType@ /must/
---     be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-pNext-pNext# Each @pNext@
---     member of any structure (including this one) in the @pNext@ chain
---     /must/ be either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',
---     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',
---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',
---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',
---     or
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-sType-unique# The @sType@
---     value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask# @flags@
---     /must/ be @0@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineViewportStateCreateFlags.PipelineViewportStateCreateFlags',
--- 'Vulkan.Core10.FundamentalTypes.Rect2D',
--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'Viewport'
-data PipelineViewportStateCreateInfo (es :: [Type]) = PipelineViewportStateCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is reserved for future use.
-    flags :: PipelineViewportStateCreateFlags
-  , -- | @viewportCount@ is the number of viewports used by the pipeline.
-    viewportCount :: Word32
-  , -- | @pViewports@ is a pointer to an array of 'Viewport' structures, defining
-    -- the viewport transforms. If the viewport state is dynamic, this member
-    -- is ignored.
-    viewports :: Vector Viewport
-  , -- | @scissorCount@ is the number of
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-scissor scissors>
-    -- and /must/ match the number of viewports.
-    scissorCount :: Word32
-  , -- | @pScissors@ is a pointer to an array of
-    -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining the
-    -- rectangular bounds of the scissor for the corresponding viewport. If the
-    -- scissor state is dynamic, this member is ignored.
-    scissors :: Vector Rect2D
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineViewportStateCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineViewportStateCreateInfo es)
-
-instance Extensible PipelineViewportStateCreateInfo where
-  extensibleTypeName = "PipelineViewportStateCreateInfo"
-  setNext PipelineViewportStateCreateInfo{..} next' = PipelineViewportStateCreateInfo{next = next', ..}
-  getNext PipelineViewportStateCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineViewportStateCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineViewportDepthClipControlCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineViewportCoarseSampleOrderStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineViewportShadingRateImageStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineViewportExclusiveScissorStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineViewportSwizzleStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineViewportWScalingStateCreateInfoNV = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineViewportStateCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineViewportStateCreateInfo es) where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineViewportStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags)) (flags)
-    let pViewportsLength = Data.Vector.length $ (viewports)
-    viewportCount'' <- lift $ if (viewportCount) == 0
-      then pure $ fromIntegral pViewportsLength
-      else do
-        unless (fromIntegral pViewportsLength == (viewportCount) || pViewportsLength == 0) $
-          throwIO $ IOError Nothing InvalidArgument "" "pViewports must be empty or have 'viewportCount' elements" Nothing Nothing
-        pure (viewportCount)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewportCount'')
-    pViewports'' <- if Data.Vector.null (viewports)
-      then pure nullPtr
-      else do
-        pPViewports <- ContT $ allocaBytes @Viewport (((Data.Vector.length (viewports))) * 24)
-        lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) ((viewports))
-        pure $ pPViewports
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewports''
-    let pScissorsLength = Data.Vector.length $ (scissors)
-    scissorCount'' <- lift $ if (scissorCount) == 0
-      then pure $ fromIntegral pScissorsLength
-      else do
-        unless (fromIntegral pScissorsLength == (scissorCount) || pScissorsLength == 0) $
-          throwIO $ IOError Nothing InvalidArgument "" "pScissors must be empty or have 'scissorCount' elements" Nothing Nothing
-        pure (scissorCount)
-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (scissorCount'')
-    pScissors'' <- if Data.Vector.null (scissors)
-      then pure nullPtr
-      else do
-        pPScissors <- ContT $ allocaBytes @Rect2D (((Data.Vector.length (scissors))) * 16)
-        lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) ((scissors))
-        pure $ pPScissors
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Rect2D))) pScissors''
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ f
-
-instance ( Extendss PipelineViewportStateCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineViewportStateCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineViewportStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags))
-    viewportCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pViewports <- peek @(Ptr Viewport) ((p `plusPtr` 24 :: Ptr (Ptr Viewport)))
-    let pViewportsLength = if pViewports == nullPtr then 0 else (fromIntegral viewportCount)
-    pViewports' <- generateM pViewportsLength (\i -> peekCStruct @Viewport ((pViewports `advancePtrBytes` (24 * (i)) :: Ptr Viewport)))
-    scissorCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    pScissors <- peek @(Ptr Rect2D) ((p `plusPtr` 40 :: Ptr (Ptr Rect2D)))
-    let pScissorsLength = if pScissors == nullPtr then 0 else (fromIntegral scissorCount)
-    pScissors' <- generateM pScissorsLength (\i -> peekCStruct @Rect2D ((pScissors `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))
-    pure $ PipelineViewportStateCreateInfo
-             next flags viewportCount pViewports' scissorCount pScissors'
-
-instance es ~ '[] => Zero (PipelineViewportStateCreateInfo es) where
-  zero = PipelineViewportStateCreateInfo
-           ()
-           zero
-           zero
-           mempty
-           zero
-           mempty
-
-
--- | VkPipelineRasterizationStateCreateInfo - Structure specifying parameters
--- of a newly created pipeline rasterization state
---
--- = Description
---
--- The application /can/ also add a
--- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD'
--- structure to the @pNext@ chain of a
--- 'PipelineRasterizationStateCreateInfo' structure. This structure enables
--- selecting the rasterization order to use when rendering with the
--- corresponding graphics pipeline as described in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order Rasterization Order>.
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is not enabled, @depthClampEnable@ /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507# If
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid fillModeNonSolid>
---     feature is not enabled, @polygonMode@ /must/ be
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414# If
---     the @VK_NV_fill_rectangle@ extension is not enabled, @polygonMode@
---     /must/ not be
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458# If
---     the @VK_KHR_portability_subset@ extension is enabled, and
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@pointPolygons@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', and
---     @rasterizerDiscardEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',
---     @polygonMode@ /must/ not be
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext# Each
---     @pNext@ member of any structure (including this one) in the @pNext@
---     chain /must/ be either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',
---     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',
---     'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',
---     or
---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-sType-unique# The
---     @sType@ value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask#
---     @flags@ /must/ be @0@
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter#
---     @polygonMode@ /must/ be a valid
---     'Vulkan.Core10.Enums.PolygonMode.PolygonMode' value
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter#
---     @cullMode@ /must/ be a valid combination of
---     'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values
---
--- -   #VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter#
---     @frontFace@ /must/ be a valid
---     'Vulkan.Core10.Enums.FrontFace.FrontFace' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags',
--- 'Vulkan.Core10.Enums.FrontFace.FrontFace', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags.PipelineRasterizationStateCreateFlags',
--- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineRasterizationStateCreateInfo (es :: [Type]) = PipelineRasterizationStateCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is reserved for future use.
-    flags :: PipelineRasterizationStateCreateFlags
-  , -- | @depthClampEnable@ controls whether to clamp the fragment’s depth values
-    -- as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>.
-    -- If the pipeline is not created with
-    -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'
-    -- present then enabling depth clamp will also disable clipping primitives
-    -- to the z planes of the frustrum as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.
-    -- Otherwise depth clipping is controlled by the state set in
-    -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.
-    depthClampEnable :: Bool
-  , -- | @rasterizerDiscardEnable@ controls whether primitives are discarded
-    -- immediately before the rasterization stage.
-    rasterizerDiscardEnable :: Bool
-  , -- | @polygonMode@ is the triangle rendering mode. See
-    -- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode'.
-    polygonMode :: PolygonMode
-  , -- | @cullMode@ is the triangle facing direction used for primitive culling.
-    -- See 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits'.
-    cullMode :: CullModeFlags
-  , -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value
-    -- specifying the front-facing triangle orientation to be used for culling.
-    frontFace :: FrontFace
-  , -- | @depthBiasEnable@ controls whether to bias fragment depth values.
-    depthBiasEnable :: Bool
-  , -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant
-    -- depth value added to each fragment.
-    depthBiasConstantFactor :: Float
-  , -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.
-    depthBiasClamp :: Float
-  , -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope
-    -- in depth bias calculations.
-    depthBiasSlopeFactor :: Float
-  , -- | @lineWidth@ is the width of rasterized line segments.
-    lineWidth :: Float
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineRasterizationStateCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineRasterizationStateCreateInfo es)
-
-instance Extensible PipelineRasterizationStateCreateInfo where
-  extensibleTypeName = "PipelineRasterizationStateCreateInfo"
-  setNext PipelineRasterizationStateCreateInfo{..} next' = PipelineRasterizationStateCreateInfo{next = next', ..}
-  getNext PipelineRasterizationStateCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineRasterizationStateStreamCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineRasterizationConservativeStateCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineRasterizationStateRasterizationOrderAMD = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineRasterizationStateCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineRasterizationStateCreateInfo es) where
-  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineRasterizationStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthClampEnable))
-    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (rasterizerDiscardEnable))
-    lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (polygonMode)
-    lift $ poke ((p `plusPtr` 32 :: Ptr CullModeFlags)) (cullMode)
-    lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (frontFace)
-    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (depthBiasEnable))
-    lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (depthBiasConstantFactor))
-    lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (depthBiasClamp))
-    lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (depthBiasSlopeFactor))
-    lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (lineWidth))
-    lift $ f
-  cStructSize = 64
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (zero)
-    lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (zero)
-    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (zero))
-    lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (zero))
-    lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (zero))
-    lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (zero))
-    lift $ f
-
-instance ( Extendss PipelineRasterizationStateCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineRasterizationStateCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineRasterizationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags))
-    depthClampEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    rasterizerDiscardEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
-    polygonMode <- peek @PolygonMode ((p `plusPtr` 28 :: Ptr PolygonMode))
-    cullMode <- peek @CullModeFlags ((p `plusPtr` 32 :: Ptr CullModeFlags))
-    frontFace <- peek @FrontFace ((p `plusPtr` 36 :: Ptr FrontFace))
-    depthBiasEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
-    depthBiasConstantFactor <- peek @CFloat ((p `plusPtr` 44 :: Ptr CFloat))
-    depthBiasClamp <- peek @CFloat ((p `plusPtr` 48 :: Ptr CFloat))
-    depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 52 :: Ptr CFloat))
-    lineWidth <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))
-    pure $ PipelineRasterizationStateCreateInfo
-             next
-             flags
-             (bool32ToBool depthClampEnable)
-             (bool32ToBool rasterizerDiscardEnable)
-             polygonMode
-             cullMode
-             frontFace
-             (bool32ToBool depthBiasEnable)
-             (coerce @CFloat @Float depthBiasConstantFactor)
-             (coerce @CFloat @Float depthBiasClamp)
-             (coerce @CFloat @Float depthBiasSlopeFactor)
-             (coerce @CFloat @Float lineWidth)
-
-instance es ~ '[] => Zero (PipelineRasterizationStateCreateInfo es) where
-  zero = PipelineRasterizationStateCreateInfo
-           ()
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPipelineMultisampleStateCreateInfo - Structure specifying parameters
--- of a newly created pipeline multisample state
---
--- = Description
---
--- Each bit in the sample mask is associated with a unique
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>
--- as defined for the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>.
--- Each bit b for mask word w in the sample mask corresponds to sample
--- index i, where i = 32 × w + b. @pSampleMask@ has a length equal to ⌈
--- @rasterizationSamples@ \/ 32 ⌉ words.
---
--- If @pSampleMask@ is @NULL@, it is treated as if the mask has all bits
--- set to @1@.
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>
---     feature is not enabled, @sampleShadingEnable@ /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is not enabled, @alphaToOneEnable@ /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786#
---     @minSampleShading@ /must/ be in the range [0,1]
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415#
---     If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and
---     if the subpass has any color attachments and @rasterizationSamples@
---     is greater than the number of color samples, then
---     @sampleShadingEnable@ /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext# Each @pNext@
---     member of any structure (including this one) in the @pNext@ chain
---     /must/ be either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV',
---     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',
---     'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV',
---     or
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-sType-unique# The @sType@
---     value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask#
---     @flags@ /must/ be @0@
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter#
---     @rasterizationSamples@ /must/ be a valid
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
---
--- -   #VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter# If
---     @pSampleMask@ is not @NULL@, @pSampleMask@ /must/ be a valid pointer
---     to an array of
---     \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)
---     'Vulkan.Core10.FundamentalTypes.SampleMask' values
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags.PipelineMultisampleStateCreateFlags',
--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',
--- 'Vulkan.Core10.FundamentalTypes.SampleMask',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineMultisampleStateCreateInfo (es :: [Type]) = PipelineMultisampleStateCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is reserved for future use.
-    flags :: PipelineMultisampleStateCreateFlags
-  , -- | @rasterizationSamples@ is a
-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
-    -- specifying the number of samples used in rasterization. This value is
-    -- ignored for the purposes of setting the number of samples used in
-    -- rasterization if the pipeline is created with the
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
-    -- dynamic state set, but if
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' dynamic
-    -- state is not set, it is still used to define the size of the
-    -- @pSampleMask@ array as described below.
-    rasterizationSamples :: SampleCountFlagBits
-  , -- | @sampleShadingEnable@ /can/ be used to enable
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.
-    sampleShadingEnable :: Bool
-  , -- | @minSampleShading@ specifies a minimum fraction of sample shading if
-    -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'.
-    minSampleShading :: Float
-  , -- | @pSampleMask@ is a pointer to an array of
-    -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemask sample mask test>.
-    sampleMask :: Vector SampleMask
-  , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is
-    -- generated based on the alpha component of the fragment’s first color
-    -- output as specified in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>
-    -- section.
-    alphaToCoverageEnable :: Bool
-  , -- | @alphaToOneEnable@ controls whether the alpha component of the
-    -- fragment’s first color output is replaced with one as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.
-    alphaToOneEnable :: Bool
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineMultisampleStateCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineMultisampleStateCreateInfo es)
-
-instance Extensible PipelineMultisampleStateCreateInfo where
-  extensibleTypeName = "PipelineMultisampleStateCreateInfo"
-  setNext PipelineMultisampleStateCreateInfo{..} next' = PipelineMultisampleStateCreateInfo{next = next', ..}
-  getNext PipelineMultisampleStateCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineMultisampleStateCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineCoverageReductionStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineCoverageModulationStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineSampleLocationsStateCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineCoverageToColorStateCreateInfoNV = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineMultisampleStateCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineMultisampleStateCreateInfo es) where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineMultisampleStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (rasterizationSamples)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (sampleShadingEnable))
-    lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (minSampleShading))
-    pSampleMask'' <- case Data.Vector.length (sampleMask) of
-      0      -> pure nullPtr
-      vecLen -> do
-        let requiredLen = case (rasterizationSamples) of
-              SampleCountFlagBits n -> (n + 31) `quot` 32
-        lift $ unless (requiredLen == fromIntegral vecLen) $
-          throwIO $ IOError Nothing InvalidArgument "" "sampleMask must be either empty or contain enough bits to cover all the sample specified by 'rasterizationSamples'" Nothing Nothing
-        do
-          pPSampleMask' <- ContT $ allocaBytes @SampleMask ((Data.Vector.length ((sampleMask))) * 4)
-          lift $ Data.Vector.imapM_ (\i e -> poke (pPSampleMask' `plusPtr` (4 * (i)) :: Ptr SampleMask) (e)) ((sampleMask))
-          pure $ pPSampleMask'
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr SampleMask))) pSampleMask''
-    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (alphaToCoverageEnable))
-    lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (alphaToOneEnable))
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (zero)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (zero))
-    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ f
-
-instance ( Extendss PipelineMultisampleStateCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineMultisampleStateCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineMultisampleStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags))
-    rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 20 :: Ptr SampleCountFlagBits))
-    sampleShadingEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
-    minSampleShading <- peek @CFloat ((p `plusPtr` 28 :: Ptr CFloat))
-    pSampleMask <- peek @(Ptr SampleMask) ((p `plusPtr` 32 :: Ptr (Ptr SampleMask)))
-    pSampleMask' <- if pSampleMask == nullPtr
-      then pure mempty
-      else generateM (case rasterizationSamples of
-        SampleCountFlagBits n -> (fromIntegral n + 31) `quot` 32) (\i -> peek @SampleMask (((pSampleMask) `advancePtrBytes` (4 * (i)) :: Ptr SampleMask)))
-    alphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
-    alphaToOneEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
-    pure $ PipelineMultisampleStateCreateInfo
-             next
-             flags
-             rasterizationSamples
-             (bool32ToBool sampleShadingEnable)
-             (coerce @CFloat @Float minSampleShading)
-             pSampleMask'
-             (bool32ToBool alphaToCoverageEnable)
-             (bool32ToBool alphaToOneEnable)
-
-instance es ~ '[] => Zero (PipelineMultisampleStateCreateInfo es) where
-  zero = PipelineMultisampleStateCreateInfo
-           ()
-           zero
-           zero
-           zero
-           zero
-           mempty
-           zero
-           zero
-
-
--- | VkPipelineColorBlendAttachmentState - Structure specifying a pipeline
--- color blend attachment state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
---     feature is not enabled, @srcColorBlendFactor@ /must/ not be
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
---     feature is not enabled, @dstColorBlendFactor@ /must/ not be
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
---     feature is not enabled, @srcAlphaBlendFactor@ /must/ not be
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
---     feature is not enabled, @dstAlphaBlendFactor@ /must/ not be
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406# If
---     either of @colorBlendOp@ or @alphaBlendOp@ is an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
---     then @colorBlendOp@ /must/ equal @alphaBlendOp@
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407#
---     If
---     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE' and @colorBlendOp@ is an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
---     then @colorBlendOp@ /must/ be the same for all attachments
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408#
---     If
---     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE' and @alphaBlendOp@ is an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
---     then @alphaBlendOp@ /must/ be the same for all attachments
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409#
---     If
---     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendAllOperations@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @colorBlendOp@
---     /must/ not be 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_ZERO_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OVER_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OVER_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_IN_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_IN_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OUT_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OUT_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_ATOP_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_ATOP_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_XOR_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_RGB_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARDODGE_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARBURN_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_VIVIDLIGHT_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARLIGHT_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PINLIGHT_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDMIX_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_ALPHA_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_DARKER_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_CLAMPED_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_CONTRAST_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_OVG_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_RED_EXT',
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_GREEN_EXT', or
---     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_BLUE_EXT'
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410# If
---     @colorBlendOp@ or @alphaBlendOp@ is an
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
---     then @colorAttachmentCount@ of the subpass this pipeline is compiled
---     against /must/ be less than or equal to
---     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454#
---     If the @VK_KHR_portability_subset@ extension is enabled, and
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@
---     /must/ not be
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455#
---     If the @VK_KHR_portability_subset@ extension is enabled, and
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@
---     /must/ not be
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter#
---     @srcColorBlendFactor@ /must/ be a valid
---     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter#
---     @dstColorBlendFactor@ /must/ be a valid
---     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter#
---     @colorBlendOp@ /must/ be a valid
---     'Vulkan.Core10.Enums.BlendOp.BlendOp' value
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter#
---     @srcAlphaBlendFactor@ /must/ be a valid
---     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter#
---     @dstAlphaBlendFactor@ /must/ be a valid
---     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter#
---     @alphaBlendOp@ /must/ be a valid
---     'Vulkan.Core10.Enums.BlendOp.BlendOp' value
---
--- -   #VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter#
---     @colorWriteMask@ /must/ be a valid combination of
---     'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'
---     values
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor',
--- 'Vulkan.Core10.Enums.BlendOp.BlendOp',
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags',
--- 'PipelineColorBlendStateCreateInfo'
-data PipelineColorBlendAttachmentState = PipelineColorBlendAttachmentState
-  { -- | @blendEnable@ controls whether blending is enabled for the corresponding
-    -- color attachment. If blending is not enabled, the source fragment’s
-    -- color for that attachment is passed through unmodified.
-    blendEnable :: Bool
-  , -- | @srcColorBlendFactor@ selects which blend factor is used to determine
-    -- the source factors (Sr,Sg,Sb).
-    srcColorBlendFactor :: BlendFactor
-  , -- | @dstColorBlendFactor@ selects which blend factor is used to determine
-    -- the destination factors (Dr,Dg,Db).
-    dstColorBlendFactor :: BlendFactor
-  , -- | @colorBlendOp@ selects which blend operation is used to calculate the
-    -- RGB values to write to the color attachment.
-    colorBlendOp :: BlendOp
-  , -- | @srcAlphaBlendFactor@ selects which blend factor is used to determine
-    -- the source factor Sa.
-    srcAlphaBlendFactor :: BlendFactor
-  , -- | @dstAlphaBlendFactor@ selects which blend factor is used to determine
-    -- the destination factor Da.
-    dstAlphaBlendFactor :: BlendFactor
-  , -- | @alphaBlendOp@ selects which blend operation is used to calculate the
-    -- alpha values to write to the color attachment.
-    alphaBlendOp :: BlendOp
-  , -- | @colorWriteMask@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'
-    -- specifying which of the R, G, B, and\/or A components are enabled for
-    -- writing, as described for the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.
-    colorWriteMask :: ColorComponentFlags
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineColorBlendAttachmentState)
-#endif
-deriving instance Show PipelineColorBlendAttachmentState
-
-instance ToCStruct PipelineColorBlendAttachmentState where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineColorBlendAttachmentState{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (blendEnable))
-    poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (srcColorBlendFactor)
-    poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (dstColorBlendFactor)
-    poke ((p `plusPtr` 12 :: Ptr BlendOp)) (colorBlendOp)
-    poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (srcAlphaBlendFactor)
-    poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (dstAlphaBlendFactor)
-    poke ((p `plusPtr` 24 :: Ptr BlendOp)) (alphaBlendOp)
-    poke ((p `plusPtr` 28 :: Ptr ColorComponentFlags)) (colorWriteMask)
-    f
-  cStructSize = 32
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr BlendOp)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (zero)
-    poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr BlendOp)) (zero)
-    f
-
-instance FromCStruct PipelineColorBlendAttachmentState where
-  peekCStruct p = do
-    blendEnable <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))
-    srcColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 4 :: Ptr BlendFactor))
-    dstColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 8 :: Ptr BlendFactor))
-    colorBlendOp <- peek @BlendOp ((p `plusPtr` 12 :: Ptr BlendOp))
-    srcAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 16 :: Ptr BlendFactor))
-    dstAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 20 :: Ptr BlendFactor))
-    alphaBlendOp <- peek @BlendOp ((p `plusPtr` 24 :: Ptr BlendOp))
-    colorWriteMask <- peek @ColorComponentFlags ((p `plusPtr` 28 :: Ptr ColorComponentFlags))
-    pure $ PipelineColorBlendAttachmentState
-             (bool32ToBool blendEnable)
-             srcColorBlendFactor
-             dstColorBlendFactor
-             colorBlendOp
-             srcAlphaBlendFactor
-             dstAlphaBlendFactor
-             alphaBlendOp
-             colorWriteMask
-
-instance Storable PipelineColorBlendAttachmentState where
-  sizeOf ~_ = 32
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PipelineColorBlendAttachmentState where
-  zero = PipelineColorBlendAttachmentState
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of
--- a newly created pipeline color blend state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-independentBlend independentBlend>
---     feature is not enabled, all elements of @pAttachments@ /must/ be
---     identical
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606# If
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is not enabled, @logicOpEnable@ /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607# If
---     @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', @logicOp@
---     /must/ be a valid 'Vulkan.Core10.Enums.LogicOp.LogicOp' value
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353# If
---     @attachmentCount@ is not @0@, and any of
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
---     or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
---     are not set, @pAttachments@ /must/ be a valid pointer to an array of
---     @attachmentCount@ valid 'PipelineColorBlendAttachmentState'
---     structures
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# Each @pNext@
---     member of any structure (including this one) in the @pNext@ chain
---     /must/ be either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'
---     or
---     'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT'
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-sType-unique# The @sType@
---     value of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-flags-parameter# @flags@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'
---     values
---
--- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter# If
---     @attachmentCount@ is not @0@, and @pAttachments@ is not @NULL@,
---     @pAttachments@ /must/ be a valid pointer to an array of
---     @attachmentCount@ valid 'PipelineColorBlendAttachmentState'
---     structures
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.LogicOp.LogicOp',
--- 'PipelineColorBlendAttachmentState',
--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlags',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'
-    -- specifying additional color blending information.
-    flags :: PipelineColorBlendStateCreateFlags
-  , -- | @logicOpEnable@ controls whether to apply
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.
-    logicOpEnable :: Bool
-  , -- | @logicOp@ selects which logical operation to apply.
-    logicOp :: LogicOp
-  , -- | @attachmentCount@ is the number of 'PipelineColorBlendAttachmentState'
-    -- elements in @pAttachments@.
-    attachmentCount :: Word32
-  , -- | @pAttachments@ is a pointer to an array of
-    -- 'PipelineColorBlendAttachmentState' structures defining blend state for
-    -- each color attachment. It is ignored if the pipeline is created with
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
-    -- and
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
-    -- dynamic states set.
-    attachments :: Vector PipelineColorBlendAttachmentState
-  , -- | @blendConstants@ is a pointer to an array of four values used as the R,
-    -- G, B, and A components of the blend constant that are used in blending,
-    -- depending on the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.
-    blendConstants :: (Float, Float, Float, Float)
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineColorBlendStateCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (PipelineColorBlendStateCreateInfo es)
-
-instance Extensible PipelineColorBlendStateCreateInfo where
-  extensibleTypeName = "PipelineColorBlendStateCreateInfo"
-  setNext PipelineColorBlendStateCreateInfo{..} next' = PipelineColorBlendStateCreateInfo{next = next', ..}
-  getNext PipelineColorBlendStateCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineColorWriteCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f
-    | otherwise = Nothing
-
-instance ( Extendss PipelineColorBlendStateCreateInfo es
-         , PokeChain es ) => ToCStruct (PipelineColorBlendStateCreateInfo es) where
-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineColorBlendStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (logicOpEnable))
-    lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (logicOp)
-    let pAttachmentsLength = Data.Vector.length $ (attachments)
-    attachmentCount'' <- lift $ if (attachmentCount) == 0
-      then pure $ fromIntegral pAttachmentsLength
-      else do
-        unless (fromIntegral pAttachmentsLength == (attachmentCount) || pAttachmentsLength == 0) $
-          throwIO $ IOError Nothing InvalidArgument "" "pAttachments must be empty or have 'attachmentCount' elements" Nothing Nothing
-        pure (attachmentCount)
-    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (attachmentCount'')
-    pAttachments'' <- if Data.Vector.null (attachments)
-      then pure nullPtr
-      else do
-        pPAttachments <- ContT $ allocaBytes @PipelineColorBlendAttachmentState (((Data.Vector.length (attachments))) * 32)
-        lift $ Data.Vector.imapM_ (\i e -> poke (pPAttachments `plusPtr` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState) (e)) ((attachments))
-        pure $ pPAttachments
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState))) pAttachments''
-    let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))
-    lift $ case (blendConstants) of
-      (e0, e1, e2, e3) -> do
-        poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))
-        poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
-        poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
-        poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
-    lift $ f
-  cStructSize = 56
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
-    lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (zero)
-    let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))
-    lift $ case ((zero, zero, zero, zero)) of
-      (e0, e1, e2, e3) -> do
-        poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))
-        poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
-        poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
-        poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
-    lift $ f
-
-instance ( Extendss PipelineColorBlendStateCreateInfo es
-         , PeekChain es ) => FromCStruct (PipelineColorBlendStateCreateInfo es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    flags <- peek @PipelineColorBlendStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags))
-    logicOpEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    logicOp <- peek @LogicOp ((p `plusPtr` 24 :: Ptr LogicOp))
-    attachmentCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
-    pAttachments <- peek @(Ptr PipelineColorBlendAttachmentState) ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState)))
-    let pAttachmentsLength = if pAttachments == nullPtr then 0 else (fromIntegral attachmentCount)
-    pAttachments' <- generateM pAttachmentsLength (\i -> peekCStruct @PipelineColorBlendAttachmentState ((pAttachments `advancePtrBytes` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState)))
-    let pblendConstants = lowerArrayPtr @CFloat ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))
-    blendConstants0 <- peek @CFloat ((pblendConstants `advancePtrBytes` 0 :: Ptr CFloat))
-    blendConstants1 <- peek @CFloat ((pblendConstants `advancePtrBytes` 4 :: Ptr CFloat))
-    blendConstants2 <- peek @CFloat ((pblendConstants `advancePtrBytes` 8 :: Ptr CFloat))
-    blendConstants3 <- peek @CFloat ((pblendConstants `advancePtrBytes` 12 :: Ptr CFloat))
-    pure $ PipelineColorBlendStateCreateInfo
-             next
-             flags
-             (bool32ToBool logicOpEnable)
-             logicOp
-             attachmentCount
-             pAttachments'
-             (( (coerce @CFloat @Float blendConstants0)
-              , (coerce @CFloat @Float blendConstants1)
-              , (coerce @CFloat @Float blendConstants2)
-              , (coerce @CFloat @Float blendConstants3) ))
-
-instance es ~ '[] => Zero (PipelineColorBlendStateCreateInfo es) where
-  zero = PipelineColorBlendStateCreateInfo
-           ()
-           zero
-           zero
-           zero
-           zero
-           mempty
-           (zero, zero, zero, zero)
-
-
--- | VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a
--- newly created pipeline dynamic state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442# Each
---     element of @pDynamicStates@ /must/ be unique
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineDynamicStateCreateInfo-sType-sType# @sType@ /must/
---     be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext# @pNext@ /must/
---     be @NULL@
---
--- -   #VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask# @flags@
---     /must/ be @0@
---
--- -   #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter# If
---     @dynamicStateCount@ is not @0@, @pDynamicStates@ /must/ be a valid
---     pointer to an array of @dynamicStateCount@ valid
---     'Vulkan.Core10.Enums.DynamicState.DynamicState' values
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Enums.DynamicState.DynamicState',
--- 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags.PipelineDynamicStateCreateFlags',
--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineDynamicStateCreateInfo = PipelineDynamicStateCreateInfo
-  { -- | @flags@ is reserved for future use.
-    flags :: PipelineDynamicStateCreateFlags
-  , -- | @pDynamicStates@ is a pointer to an array of
-    -- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values specifying which
-    -- pieces of pipeline state will use the values from dynamic state commands
-    -- rather than from pipeline state creation information.
-    dynamicStates :: Vector DynamicState
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineDynamicStateCreateInfo)
-#endif
-deriving instance Show PipelineDynamicStateCreateInfo
-
-instance ToCStruct PipelineDynamicStateCreateInfo where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineDynamicStateCreateInfo{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (dynamicStates)) :: Word32))
-    pPDynamicStates' <- ContT $ allocaBytes @DynamicState ((Data.Vector.length (dynamicStates)) * 4)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicStates' `plusPtr` (4 * (i)) :: Ptr DynamicState) (e)) (dynamicStates)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DynamicState))) (pPDynamicStates')
-    lift $ f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
-
-instance FromCStruct PipelineDynamicStateCreateInfo where
-  peekCStruct p = do
-    flags <- peek @PipelineDynamicStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags))
-    dynamicStateCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pDynamicStates <- peek @(Ptr DynamicState) ((p `plusPtr` 24 :: Ptr (Ptr DynamicState)))
-    pDynamicStates' <- generateM (fromIntegral dynamicStateCount) (\i -> peek @DynamicState ((pDynamicStates `advancePtrBytes` (4 * (i)) :: Ptr DynamicState)))
-    pure $ PipelineDynamicStateCreateInfo
-             flags pDynamicStates'
-
-instance Zero PipelineDynamicStateCreateInfo where
-  zero = PipelineDynamicStateCreateInfo
-           zero
-           mempty
-
-
--- | VkStencilOpState - Structure specifying stencil operation state
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Enums.CompareOp.CompareOp',
--- 'PipelineDepthStencilStateCreateInfo',
--- 'Vulkan.Core10.Enums.StencilOp.StencilOp'
-data StencilOpState = StencilOpState
-  { -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying
-    -- the action performed on samples that fail the stencil test.
-    --
-    -- #VUID-VkStencilOpState-failOp-parameter# @failOp@ /must/ be a valid
-    -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
-    failOp :: StencilOp
-  , -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying
-    -- the action performed on samples that pass both the depth and stencil
-    -- tests.
-    --
-    -- #VUID-VkStencilOpState-passOp-parameter# @passOp@ /must/ be a valid
-    -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
-    passOp :: StencilOp
-  , -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
-    -- specifying the action performed on samples that pass the stencil test
-    -- and fail the depth test.
-    --
-    -- #VUID-VkStencilOpState-depthFailOp-parameter# @depthFailOp@ /must/ be a
-    -- valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
-    depthFailOp :: StencilOp
-  , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value
-    -- specifying the comparison operator used in the stencil test.
-    --
-    -- #VUID-VkStencilOpState-compareOp-parameter# @compareOp@ /must/ be a
-    -- valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value
-    compareOp :: CompareOp
-  , -- | @compareMask@ selects the bits of the unsigned integer stencil values
-    -- participating in the stencil test.
-    compareMask :: Word32
-  , -- | @writeMask@ selects the bits of the unsigned integer stencil values
-    -- updated by the stencil test in the stencil framebuffer attachment.
-    writeMask :: Word32
-  , -- | @reference@ is an integer stencil reference value that is used in the
-    -- unsigned stencil comparison.
-    reference :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (StencilOpState)
-#endif
-deriving instance Show StencilOpState
-
-instance ToCStruct StencilOpState where
-  withCStruct x f = allocaBytes 28 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p StencilOpState{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StencilOp)) (failOp)
-    poke ((p `plusPtr` 4 :: Ptr StencilOp)) (passOp)
-    poke ((p `plusPtr` 8 :: Ptr StencilOp)) (depthFailOp)
-    poke ((p `plusPtr` 12 :: Ptr CompareOp)) (compareOp)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (compareMask)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (writeMask)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (reference)
-    f
-  cStructSize = 28
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StencilOp)) (zero)
-    poke ((p `plusPtr` 4 :: Ptr StencilOp)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr StencilOp)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr CompareOp)) (zero)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct StencilOpState where
-  peekCStruct p = do
-    failOp <- peek @StencilOp ((p `plusPtr` 0 :: Ptr StencilOp))
-    passOp <- peek @StencilOp ((p `plusPtr` 4 :: Ptr StencilOp))
-    depthFailOp <- peek @StencilOp ((p `plusPtr` 8 :: Ptr StencilOp))
-    compareOp <- peek @CompareOp ((p `plusPtr` 12 :: Ptr CompareOp))
-    compareMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    writeMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    reference <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
-    pure $ StencilOpState
-             failOp passOp depthFailOp compareOp compareMask writeMask reference
-
-instance Storable StencilOpState where
-  sizeOf ~_ = 28
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero StencilOpState where
-  zero = StencilOpState
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters
--- of a newly created pipeline depth stencil state
---
--- == Valid Usage
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is not enabled, @depthBoundsTestEnable@ /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453#
---     If the @VK_KHR_portability_subset@ extension is enabled, and
---     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@separateStencilMaskRef@
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', and the value of
---     'PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', and the value of
---     'PipelineRasterizationStateCreateInfo'::@cullMode@ is
---     'Vulkan.Core10.Enums.CullModeFlagBits.CULL_MODE_NONE', the value of
---     @reference@ in each of the 'StencilOpState' structs in @front@ and
---     @back@ /must/ be the same
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO'
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext# @pNext@
---     /must/ be @NULL@
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter# @flags@
---     /must/ be a valid combination of
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'
---     values
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter#
---     @depthCompareOp@ /must/ be a valid
---     'Vulkan.Core10.Enums.CompareOp.CompareOp' value
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter# @front@
---     /must/ be a valid 'StencilOpState' structure
---
--- -   #VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter# @back@
---     /must/ be a valid 'StencilOpState' structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.CompareOp.CompareOp', 'GraphicsPipelineCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlags',
--- 'StencilOpState', 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PipelineDepthStencilStateCreateInfo = PipelineDepthStencilStateCreateInfo
-  { -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'
-    -- specifying additional depth\/stencil state information.
-    flags :: PipelineDepthStencilStateCreateFlags
-  , -- | @depthTestEnable@ controls whether
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth testing>
-    -- is enabled.
-    depthTestEnable :: Bool
-  , -- | @depthWriteEnable@ controls whether
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-write depth writes>
-    -- are enabled when @depthTestEnable@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Depth writes are always disabled
-    -- when @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.
-    depthWriteEnable :: Bool
-  , -- | @depthCompareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value
-    -- specifying the comparison operator to use in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparison Depth Comparison>
-    -- step of the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>.
-    depthCompareOp :: CompareOp
-  , -- | @depthBoundsTestEnable@ controls whether
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds testing>
-    -- is enabled.
-    depthBoundsTestEnable :: Bool
-  , -- | @stencilTestEnable@ controls whether
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil testing>
-    -- is enabled.
-    stencilTestEnable :: Bool
-  , -- | @front@ and @back@ are 'StencilOpState' values controlling the
-    -- corresponding parameters of the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>.
-    front :: StencilOpState
-  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "back"
-    back :: StencilOpState
-  , -- | @minDepthBounds@ is the minimum depth bound used in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.
-    minDepthBounds :: Float
-  , -- | @maxDepthBounds@ is the maximum depth bound used in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.
-    maxDepthBounds :: Float
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineDepthStencilStateCreateInfo)
-#endif
-deriving instance Show PipelineDepthStencilStateCreateInfo
-
-instance ToCStruct PipelineDepthStencilStateCreateInfo where
-  withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineDepthStencilStateCreateInfo{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags)) (flags)
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthTestEnable))
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (depthWriteEnable))
-    poke ((p `plusPtr` 28 :: Ptr CompareOp)) (depthCompareOp)
-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (depthBoundsTestEnable))
-    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (stencilTestEnable))
-    poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (front)
-    poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (back)
-    poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (minDepthBounds))
-    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (maxDepthBounds))
-    f
-  cStructSize = 104
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 28 :: Ptr CompareOp)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (zero)
-    poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (zero)
-    poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (zero))
-    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (zero))
-    f
-
-instance FromCStruct PipelineDepthStencilStateCreateInfo where
-  peekCStruct p = do
-    flags <- peek @PipelineDepthStencilStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags))
-    depthTestEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    depthWriteEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
-    depthCompareOp <- peek @CompareOp ((p `plusPtr` 28 :: Ptr CompareOp))
-    depthBoundsTestEnable <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
-    stencilTestEnable <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
-    front <- peekCStruct @StencilOpState ((p `plusPtr` 40 :: Ptr StencilOpState))
-    back <- peekCStruct @StencilOpState ((p `plusPtr` 68 :: Ptr StencilOpState))
-    minDepthBounds <- peek @CFloat ((p `plusPtr` 96 :: Ptr CFloat))
-    maxDepthBounds <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))
-    pure $ PipelineDepthStencilStateCreateInfo
-             flags
-             (bool32ToBool depthTestEnable)
-             (bool32ToBool depthWriteEnable)
-             depthCompareOp
-             (bool32ToBool depthBoundsTestEnable)
-             (bool32ToBool stencilTestEnable)
-             front
-             back
-             (coerce @CFloat @Float minDepthBounds)
-             (coerce @CFloat @Float maxDepthBounds)
-
-instance Storable PipelineDepthStencilStateCreateInfo where
-  sizeOf ~_ = 104
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PipelineDepthStencilStateCreateInfo where
-  zero = PipelineDepthStencilStateCreateInfo
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkGraphicsPipelineCreateInfo - Structure specifying parameters of a
--- newly created graphics pipeline
---
--- = Description
---
--- The parameters @basePipelineHandle@ and @basePipelineIndex@ are
--- described in more detail in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
---
--- If any shader stage fails to compile, the compile log will be reported
--- back to the application, and
--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated.
---
--- The state required for a graphics pipeline is divided into
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
--- and
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output state>.
---
--- Vertex input state is defined by:
---
--- -   'PipelineVertexInputStateCreateInfo'
---
--- -   'PipelineInputAssemblyStateCreateInfo'
---
--- Pre-rasterization shader state is defined by:
---
--- -   'PipelineShaderStageCreateInfo' entries for:
---
---     -   Vertex shaders
---
---     -   Tessellation control shaders
---
---     -   Tessellation evaluation shaders
---
---     -   Geometry shaders
---
---     -   Task shaders
---
---     -   Mesh shaders
---
--- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor
---     sets with pre-rasterization shader bindings if
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---     was specified.
---
---     -   If
---         'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---         was not specified, the full pipeline layout must be specified.
---
--- -   'PipelineViewportStateCreateInfo'
---
--- -   'PipelineRasterizationStateCreateInfo'
---
--- -   'PipelineTessellationStateCreateInfo'
---
--- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter
---
--- -   The @viewMask@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
---     (formats are ignored)
---
--- -   'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'
---
--- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
---
--- Fragment shader state is defined by:
---
--- -   A 'PipelineShaderStageCreateInfo' entry for the fragment shader
---
--- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor
---     sets with fragment shader bindings if
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---     was specified.
---
---     -   If
---         'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---         was not specified, the full pipeline layout must be specified.
---
--- -   'PipelineMultisampleStateCreateInfo' if
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>
---     is enabled or @renderpass@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   'PipelineDepthStencilStateCreateInfo'
---
--- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter
---
--- -   The @viewMask@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
---     (formats are ignored)
---
--- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
---
--- -   'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'
---
--- -   'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'
---
--- -   Inclusion\/omission of the
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
---     flag
---
--- -   Inclusion\/omission of the
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
---     flag
---
--- Fragment output state is defined by:
---
--- -   'PipelineColorBlendStateCreateInfo'
---
--- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter
---
--- -   'PipelineMultisampleStateCreateInfo'
---
--- -   'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
---
--- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---
--- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---
--- -   Inclusion\/omission of the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
---     and
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
---     flags
---
--- Dynamic state values set via @pDynamicState@ /must/ be ignored if the
--- state they correspond to is not otherwise statically set by one of the
--- state subsets used to create the pipeline. Additionally, setting dynamic
--- state values /must/ not modify whether state in a linked library is
--- static or dynamic; this is set and unchangeable when the library is
--- created. For example, if a pipeline only included
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
--- then any dynamic state value corresponding to depth or stencil testing
--- has no effect. Any linked library that has dynamic state enabled that
--- same dynamic state /must/ also be enabled in all the other linked
--- libraries to which that dynamic state applies.
---
--- A complete graphics pipeline always includes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
--- with other subsets included depending on that state. If the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
--- includes a vertex shader, then
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
--- is included in a complete graphics pipeline. If the value of
--- 'PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ in the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
--- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the
--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
--- dynamic state is enabled
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
--- and
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
--- is included in a complete graphics pipeline.
---
--- If different subsets are linked together with pipeline layouts created
--- with
--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
--- the final effective pipeline layout is effectively the union of the
--- linked pipeline layouts. When binding descriptor sets for this pipeline,
--- the pipeline layout used /must/ be compatible with this union. This
--- pipeline layout /can/ be overridden when linking with
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'
--- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
--- with this union other than
--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
--- or when linking without
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'
--- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is fully
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
--- with this union.
---
--- == Valid Usage
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07984# If @flags@ contains
---     the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
---     a valid handle to a graphics 'Vulkan.Core10.Handles.Pipeline'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07985# If @flags@ contains
---     the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, and @basePipelineHandle@ is
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/
---     be a valid index into the calling command’s @pCreateInfos@ parameter
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07986# If @flags@ contains
---     the
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
---     flag, @basePipelineIndex@ /must/ be -1 or @basePipelineHandle@
---     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07987# If a push constant
---     block is declared in a shader, a push constant range in @layout@
---     /must/ match both the shader stage and range
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07988# If a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
---     is declared in a shader, a descriptor slot in @layout@ /must/ match
---     the shader stage
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07990# If a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
---     is declared in a shader, and the descriptor type is not
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a
---     descriptor slot in @layout@ /must/ match the descriptor type
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07991# If a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
---     is declared in a shader as an array, a descriptor slot in @layout@
---     /must/ match the descriptor count
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     the geometric shader stages provided in @pStages@ /must/ be either
---     from the mesh shading pipeline (@stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT')
---     or from the primitive shading pipeline (@stage@ is
---     '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-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     the @stage@ member of one element of @pStages@ /must/ be either
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063# The shader stages
---     for
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     /must/ use either the @TaskNV@ and @MeshNV@ @Execution@ @Model@ or
---     the @TaskEXT@ and @MeshEXT@ @Execution@ @Model@, but /must/ not use
---     both
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes a tessellation control shader stage, it
---     /must/ include a tessellation evaluation shader stage
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes a tessellation evaluation shader stage, it
---     /must/ include a tessellation control shader stage
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes a tessellation control shader stage and a
---     tessellation evaluation shader stage, @pTessellationState@ /must/ be
---     a valid pointer to a valid 'PipelineTessellationStateCreateInfo'
---     structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes tessellation shader stages, the shader code
---     of at least one stage /must/ contain an @OpExecutionMode@
---     instruction specifying the type of subdivision in the pipeline
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes tessellation shader stages, and the shader
---     code of both stages contain an @OpExecutionMode@ instruction
---     specifying the type of subdivision in the pipeline, they /must/ both
---     specify the same subdivision mode
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes tessellation shader stages, the shader code
---     of at least one stage /must/ contain an @OpExecutionMode@
---     instruction specifying the output patch size in the pipeline
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes tessellation shader stages, and the shader
---     code of both contain an @OpExecutionMode@ instruction specifying the
---     out patch size in the pipeline, they /must/ both specify the same
---     patch size
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes tessellation shader stages, the @topology@
---     member of @pInputAssembly@ /must/ be
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and the @topology@ member of @pInputAssembly@ is
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
---     @pStages@ /must/ include tessellation shader stages
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-Vertex-07722# If the pipeline is
---     being created with a @Vertex@ @Execution@ @Model@ and no
---     @TessellationEvaluation@ or @Geometry@ @Execution@ @Model@, and the
---     @topology@ member of @pInputAssembly@ is
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',
---     a @PointSize@ decorated variable /must/ be written to
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723# If
---     the pipeline is being created with a @TessellationEvaluation@
---     @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the
---     @PointMode@ @Execution@ @Mode@, and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
---     is enabled, a @PointSize@ decorated variable /must/ be written to
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724# If
---     the pipeline is being created with a @TessellationEvaluation@
---     @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the
---     @PointMode@ @Execution@ @Mode@, and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
---     is not enabled, a @PointSize@ decorated variable /must/ not be
---     written to
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-Geometry-07725# If the pipeline
---     is being created with a @Geometry@ @Execution@ @Model@, uses the
---     @OutputPoints@ @Execution@ @Mode@, and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
---     is enabled, a @PointSize@ decorated variable /must/ be written to
---     for every vertex emitted
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-Geometry-07726# If the pipeline
---     is being created with a @Geometry@ @Execution@ @Model@, uses the
---     @OutputPoints@ @Execution@ @Mode@, and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
---     is not enabled, a @PointSize@ decorated variable /must/ not be
---     written to
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes a geometry shader stage, and does not include
---     any tessellation shader stages, its shader code /must/ contain an
---     @OpExecutionMode@ instruction specifying an input primitive type
---     that is
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>
---     with the primitive topology specified in @pInputAssembly@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @pStages@ includes a geometry shader stage, and also includes
---     tessellation shader stages, its shader code /must/ contain an
---     @OpExecutionMode@ instruction specifying an input primitive type
---     that is
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>
---     with the primitive topology that is output by the tessellation
---     stages
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     it includes both a fragment shader and a geometry shader, and the
---     fragment shader code reads from an input variable that is decorated
---     with @PrimitiveId@, then the geometry shader code /must/ write to a
---     matching output variable, decorated with @PrimitiveId@, in all
---     execution paths
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     it includes a mesh shader and the fragment shader code reads from an
---     input variable that is decorated with @PrimitiveId@, then the mesh
---     shader code /must/ write to a matching output variable, decorated
---     with @PrimitiveId@, in all execution paths
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06038# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     the fragment shader /must/ not read from any input attachment that
---     is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in
---     @subpass@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and multiple pre-rasterization shader stages are included in
---     @pStages@, the shader code for the entry points identified by those
---     @pStages@ and the rest of the state identified by this structure
---     /must/ adhere to the pipeline linking rules described in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
---     chapter
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     the fragment shader and last
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
---     and any relevant state /must/ adhere to the pipeline linking rules
---     described in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
---     chapter
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06041# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     then for each color attachment in the subpass, if the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
---     of the format of the corresponding attachment description 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-VkGraphicsPipelineCreateInfo-renderPass-07609# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and the @pColorBlendState@ pointer is not @NULL@, and the subpass
---     uses color attachments, the @attachmentCount@ member of
---     @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@
---     used to create @subpass@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',
---     the @pViewports@ member of @pViewportState@ /must/ be a valid
---     pointer to an array of @pViewportState->viewportCount@ valid
---     'Viewport' structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',
---     the @pScissors@ member of @pViewportState@ /must/ be a valid pointer
---     to an array of @pViewportState->scissorCount@
---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>
---     feature is not enabled, and no element of the @pDynamicStates@
---     member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the
---     @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If
---     the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @rasterizerDiscardEnable@ member of @pRasterizationState@ is
---     'Vulkan.Core10.FundamentalTypes.FALSE', @pViewportState@ /must/ be a
---     valid pointer to a valid 'PipelineViewportStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
---     dynamic state enabled, @pViewportState@ /must/ be a valid pointer to
---     a valid 'PipelineViewportStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If
---     the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @pMultisampleState@ /must/ be a valid pointer to a valid
---     'PipelineMultisampleStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06043# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@
---     /must/ be a valid pointer to a valid
---     'PipelineDepthStencilStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06044# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a
---     valid pointer to a valid 'PipelineColorBlendStateCreateInfo'
---     structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>
---     feature is not enabled, no element of the @pDynamicStates@ member of
---     @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the
---     @depthBiasEnable@ member of @pRasterizationState@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the @depthBiasClamp@ member
---     of @pRasterizationState@ /must/ be @0.0@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the @VK_EXT_depth_range_unrestricted@ extension is not enabled
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and
---     the @depthBoundsTestEnable@ member of @pDepthStencilState@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the @minDepthBounds@ and
---     @maxDepthBounds@ members of @pDepthStencilState@ /must/ be between
---     @0.0@ and @1.0@, inclusive
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
---     and the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---     structure included in the @pNext@ chain of @pMultisampleState@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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-VkGraphicsPipelineCreateInfo-pDynamicStates-07611# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
---     and the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---     structure included in the @pNext@ chain of @pMultisampleState@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     is used, @sampleLocationsInfo.sampleLocationGridSize.height@ /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-VkGraphicsPipelineCreateInfo-pDynamicStates-07612# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
---     and the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---     structure included in the @pNext@ chain of @pMultisampleState@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     is used, @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
---     @rasterizationSamples@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If
---     the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
---     structure included in the @pNext@ chain of @pMultisampleState@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the fragment shader code
---     /must/ not statically use the extended instruction
---     @InterpolateAtSample@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853#
---     If the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature are enabled, @rasterizationSamples@ is not dynamic, and if
---     @subpass@ uses color and\/or depth\/stencil attachments, then the
---     @rasterizationSamples@ member of @pMultisampleState@ /must/ be the
---     same as the sample count for those subpass attachments
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and the @VK_AMD_mixed_attachment_samples@ extension is enabled,
---     @rasterizationSamples@ is not dynamic, and if @subpass@ uses color
---     and\/or depth\/stencil attachments, then the @rasterizationSamples@
---     member of @pMultisampleState@ /must/ equal the maximum of the sample
---     counts of those subpass attachments
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06854# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
---     @VK_EXT_multisampled_render_to_single_sampled@ extension is enabled,
---     @rasterizationSamples@ is not dynamic, and @subpass@ has a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure included in the
---     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'::@pNext@
---     chain with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the
---     @rasterizationSamples@ member of @pMultisampleState@ /must/ be equal
---     to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     the @VK_NV_framebuffer_mixed_samples@ extension is enabled,
---     @rasterizationSamples@ is not dynamic, and if @subpass@ has a
---     depth\/stencil attachment and depth test, stencil test, or depth
---     bounds test are enabled, then the @rasterizationSamples@ member of
---     @pMultisampleState@ /must/ be the same as the sample count of the
---     depth\/stencil attachment
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     the @VK_NV_framebuffer_mixed_samples@ extension is enabled,
---     @rasterizationSamples@ is not dynamic, and if @subpass@ has any
---     color attachments, then the @rasterizationSamples@ member of
---     @pMultisampleState@ /must/ be greater than or equal to the sample
---     count for those subpass attachments
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If
---     the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     the @VK_NV_coverage_reduction_mode@ extension is enabled, and
---     @rasterizationSamples@ is not dynamic, the coverage reduction mode
---     specified by
---     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@,
---     the @rasterizationSamples@ member of @pMultisampleState@ 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-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @rasterizationSamples@ is not dynamic, and @subpass@ does not use
---     any color and\/or depth\/stencil attachments, then the
---     @rasterizationSamples@ member of @pMultisampleState@ /must/ follow
---     the rules for a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06046# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @subpass@ /must/ be
---     a valid subpass within @renderPass@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     @subpass@ viewMask is not @0@, and @multiviewTessellationShader@ is
---     not enabled, then @pStages@ /must/ not include tessellation shaders
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     @subpass@ viewMask is not @0@, and @multiviewGeometryShader@ is not
---     enabled, then @pStages@ /must/ not include a geometry shader
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06049# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and @subpass@ viewMask is not @0@, all of the shaders in the
---     pipeline /must/ not write to the @Layer@ built-in output
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06050# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and @subpass@ viewMask is not @0@, then all of the shaders in the
---     pipeline /must/ not include variables decorated with the @Layer@
---     built-in decoration in their interfaces
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07717# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and @subpass@ viewMask is not @0@, then all of the shaders in the
---     pipeline /must/ not include variables decorated with the @ViewMask@
---     built-in decoration in their interfaces
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07064# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     @subpass@ viewMask is not @0@, and @multiviewMeshShader@ is not
---     enabled, then @pStages@ /must/ not include a mesh shader
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not
---     contain the
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE'
---     flag
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and an input attachment was referenced by an @aspectMask@ at
---     @renderPass@ creation time, the fragment shader /must/ only read
---     from the aspects that were specified for that input attachment
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-layout-01688# The number of
---     resources in @layout@ accessible to each shader stage that is used
---     by the pipeline /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV',
---     and the @viewportWScalingEnable@ member of a
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
---     structure, included in the @pNext@ chain of @pViewportState@, is
---     'Vulkan.Core10.FundamentalTypes.TRUE', the @pViewportWScalings@
---     member of the
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
---     /must/ be a pointer to an array of
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@
---     valid
---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.ViewportWScalingNV'
---     structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV',
---     and if @pViewportState->pNext@ chain includes a
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'
---     structure, and if its @exclusiveScissorCount@ member is not @0@,
---     then its @pExclusiveScissors@ member /must/ be a valid pointer to an
---     array of @exclusiveScissorCount@
---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854# If
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     is included in the @pDynamicStates@ array then the implementation
---     /must/ support at least @specVersion@ @2@ of the
---     @VK_NV_scissor_exclusive@ extension
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV',
---     and if @pViewportState->pNext@ chain includes a
---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'
---     structure, then its @pShadingRatePalettes@ member /must/ be a valid
---     pointer to an array of @viewportCount@ valid
---     'Vulkan.Extensions.VK_NV_shading_rate_image.ShadingRatePaletteNV'
---     structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT',
---     and if @pNext@ chain includes a
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'
---     structure, and if its @discardRectangleCount@ member is not @0@,
---     then its @pDiscardRectangles@ member /must/ be a valid pointer to an
---     array of @discardRectangleCount@
---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855# If
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     is included in the @pDynamicStates@ array then the implementation
---     /must/ support at least @specVersion@ @2@ of the
---     @VK_EXT_discard_rectangles@ extension
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856# If
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     is included in the @pDynamicStates@ array then the implementation
---     /must/ support at least @specVersion@ @2@ of the
---     @VK_EXT_discard_rectangles@ extension
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' is
---     not set, @pVertexInputState@ /must/ be a valid pointer to a valid
---     'PipelineVertexInputStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-Input-07905# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' is
---     not set, then all variables with the @Input@ storage class decorated
---     with @Location@ in the @Vertex@ @Execution@ @Model@ @OpEntryPoint@
---     /must/ contain a location in
---     'VertexInputAttributeDescription'::@location@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
---     @pInputAssemblyState@ /must/ be a valid pointer to a valid
---     'PipelineInputAssemblyStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     the @Xfb@ execution mode /can/ be specified by no more than one
---     shader stage in @pStages@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and any shader stage in @pStages@ specifies @Xfb@ execution mode it
---     /must/ be the last
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and a
---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
---     value other than zero is specified, all variables in the output
---     interface of the entry point being compiled decorated with
---     @Position@, @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be
---     decorated with identical @Stream@ values that match the
---     @rasterizationStream@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
---     is zero, or not specified, all variables in the output interface of
---     the entry point being compiled decorated with @Position@,
---     @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be decorated
---     with a @Stream@ value of zero, or /must/ not specify the @Stream@
---     decoration
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the last
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
---     is a geometry shader, and that geometry shader uses the
---     @GeometryStreams@ capability, then
---     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@
---     feature /must/ be enabled
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and there are any mesh shader stages in the pipeline there /must/
---     not be any shader stage in the pipeline with a @Xfb@ execution mode
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766# If
---     the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and at least one of
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and @pMultisampleState@ is not @NULL@, the @lineRasterizationMode@
---     member of a
---     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'
---     structure included in the @pNext@ chain of @pRasterizationState@ is
---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',
---     then the @alphaToCoverageEnable@, @alphaToOneEnable@, and
---     @sampleShadingEnable@ members of @pMultisampleState@ /must/ all be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     the @stippledLineEnable@ member of
---     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'
---     is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the
---     @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT',
---     then the @lineStippleFactor@ member of
---     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'
---     /must/ be in the range [1,256]
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03372# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03373# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03374# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03375# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03376# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03377# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03577# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04947# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     is included in the @pDynamicStates@ array then @viewportCount@
---     /must/ be zero
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
---     is included in the @pDynamicStates@ array then @scissorCount@ /must/
---     be zero
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     is included in the @pDynamicStates@ array then
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not
---     be present
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
---     is included in the @pDynamicStates@ array then
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' /must/ not
---     be present
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and includes a mesh shader, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY',
---     or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and includes a mesh shader, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE',
---     or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
---     then the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and @flags@ includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
---     then all stages /must/ not specify @Xfb@ execution mode
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
---     or
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368# If
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07369# @flags@ /must/ not
---     include both
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'
---     and
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
---     /must/ be greater than or equal to @1@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
---     /must/ be greater than or equal to @1@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
---     /must/ be a power-of-two value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
---     /must/ be a power-of-two value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
---     /must/ be less than or equal to @4@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
---     /must/ be less than or equal to @4@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
---     and
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
---     /must/ both be equal to @1@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]
---     /must/ be a valid
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
---     value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]
---     /must/ be a valid
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
---     value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]
---     /must/ be
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]
---     /must/ be
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503#
---     If the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported,
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     is not included in @pDynamicState->pDynamicStates@, and
---     'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than
---     @1@, entry points specified in @pStages@ /must/ not write to the
---     @PrimitiveShadingRateKHR@ built-in
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504#
---     If the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and entry points specified in @pStages@
---     write to the @ViewportIndex@ built-in, they /must/ not also write to
---     the @PrimitiveShadingRateKHR@ built-in
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505#
---     If the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and entry points specified in @pStages@
---     write to the @ViewportMaskNV@ built-in, they /must/ not also write
---     to the @PrimitiveShadingRateKHR@ built-in
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506#
---     If the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>
---     limit is not supported, and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, elements of
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@
---     /must/ be
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
---     or
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-None-06569# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@
---     /must/ be a valid
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateTypeNV'
---     value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
---     /must/ be a valid
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateNV'
---     value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]
---     /must/ be a valid
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
---     value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]
---     /must/ be a valid
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
---     value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@
---     /must/ be equal to
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
---     /must/ be equal to
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]
---     /must/ be
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]
---     /must/ be
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573#
---     If the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>
---     limit is not supported and
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
---     is not included in @pDynamicState->pDynamicStates@, elements of
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@
---     /must/ be
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
---     or
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
---     /must/ not be equal to
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV',
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV',
---     or
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>
---     feature is not enabled,
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
---     /must/ not be equal to
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578# All
---     elements of the @pDynamicStates@ member of @pDynamicState@ /must/
---     not be
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and includes a mesh shader, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If
---     the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the @VK_QCOM_render_pass_shader_resolve@ extension is enabled,
---     @rasterizationSamples@ is not dynamic, and if subpass has any input
---     attachments, and if the subpass description contains
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',
---     then the sample count of the input attachments /must/ equal
---     @rasterizationSamples@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and the @VK_QCOM_render_pass_shader_resolve@ extension is enabled,
---     and if the subpass description contains
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',
---     then @sampleShadingEnable@ /must/ be false
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04901# If @flags@ includes
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',
---     then the subpass /must/ be the last subpass in a subpass dependency
---     chain
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04902# If @flags@ includes
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',
---     and if @pResolveAttachments@ is not @NULL@, then each resolve
---     attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06575# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a
---     valid render pass object
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>
---     feature is not enabled and the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-multiview-06577# If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>
---     feature is not enabled, the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     /must/ be @0@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06578# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
---     index of the most significant bit in
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     /must/ be less than
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06579# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
---     is not 0,
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     /must/ be a valid pointer to an array of @colorAttachmentCount@
---     valid 'Vulkan.Core10.Enums.Format.Format' values
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06580# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', each
---     element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06582# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and any
---     element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', that format
---     /must/ be a format with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
---     that include
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
---     or
---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06583# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
---     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06584# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
---     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06585# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
---     format with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
---     that include
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06586# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
---     format with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
---     that include
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06587# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
---     format that includes a depth component
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06588# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
---     format that includes a stencil component
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06589# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
---     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
---     @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06053# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and either of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
---     or
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
---     are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
---     @pDepthStencilState@ /must/ be a valid pointer to a valid
---     'PipelineDepthStencilStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06590# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     but not
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @pDepthStencilState@ /must/ be a valid pointer to a valid
---     'PipelineDepthStencilStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06054# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
---     is not equal to @0@, @pColorBlendState@ /must/ be a valid pointer to
---     a valid 'PipelineColorBlendStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06055# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     @pColorBlendState->attachmentCount@ /must/ be equal to
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06057# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     is not @0@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>
---     feature is not enabled, then @pStages@ /must/ not include
---     tessellation shaders
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06058# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     is not @0@, and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>
---     feature is not enabled, then @pStages@ /must/ not include a geometry
---     shader
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07718# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     is not @0@, all of the shaders in the pipeline /must/ not write to
---     the @Layer@ built-in output
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06059# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     is not @0@, all of the shaders in the pipeline /must/ not include
---     variables decorated with the @Layer@ built-in decoration in their
---     interfaces
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07719# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     is not @0@, all of the shaders in the pipeline /must/ not include
---     variables decorated with the @ViewIndex@ built-in decoration in
---     their interfaces
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07720# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     is not @0@, and @multiviewMeshShader@ is not enabled, then @pStages@
---     /must/ not include a mesh shader
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     fragment shaders in @pStages@ /must/ not include the
---     @InputAttachment@ capability
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-08710# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     fragment shaders in @pStages@ /must/ not include any of the
---     @TileImageColorReadAccessEXT@, @TileImageDepthReadAccessEXT@, or
---     @TileImageStencilReadAccessEXT@ capabilities
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06062# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', for
---     each color attachment format defined by the
---     @pColorAttachmentFormats@ member of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
---     if its
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential 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-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the
---     @pNext@ chain includes
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV',
---     the @colorAttachmentCount@ member of that structure /must/ be equal
---     to the value of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06591# If @pStages@
---     includes a fragment shader stage, and the fragment shader declares
---     the @EarlyFragmentTests@ execution mode, the @flags@ member of
---     'PipelineDepthStencilStateCreateInfo' /must/ not include
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and the @flags@ member of 'PipelineColorBlendStateCreateInfo'
---     includes
---     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT',
---     @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'
---     includes
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT',
---     @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592# If
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
---     elements of the @pColorAttachmentSamples@ member of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     /must/ be valid
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and the @depthStencilAttachmentSamples@ member of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
---     or
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
---     is not 0, it /must/ be a valid
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and the @flags@ member of 'PipelineColorBlendStateCreateInfo'
---     includes
---     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
---     @subpass@ /must/ have been created with
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'
---     includes
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT',
---     @subpass@ /must/ have been created with
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
---     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'
---     includes
---     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT',
---     @subpass@ /must/ have been created with
---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594#
---     If
---     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@
---     is not @0@, it /must/ be equal to @stageCount@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06595# If @renderPass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
---     created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     and
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
---     is 'Vulkan.Core10.FundamentalTypes.TRUE' then
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
---     /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06596# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other flag, the value of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
---     specified in both this pipeline and the library /must/ be equal
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     the value of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
---     specified in both libraries /must/ be equal
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06598# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other flag, the value of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
---     specified in both this pipeline and the library /must/ be equal
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     the value of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
---     specified in both libraries /must/ be equal
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606# If
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
---     feature is not enabled, @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607# If
---     the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
---     feature is not enabled, the pipeline /must/ be created with a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete all possible state subsets>,
---     @flags@ /must/ not include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06609# If @flags@ includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',
---     pipeline libraries included via
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
---     /must/ have been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06610# If @flags@ includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT',
---     pipeline libraries included via
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
---     /must/ have been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611# Any pipeline
---     libraries included via
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     /must/ not include any
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets state subset>
---     already defined by this structure or defined by any other pipeline
---     library in
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06612# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other flag, and @layout@ was not created with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     then the @layout@ used by this pipeline and the library /must/ be
---     /identically defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and the @layout@ specified by either library was not created with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     then the @layout@ used by each library /must/ be /identically
---     defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06614# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other subset, and @layout@ was created with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     then the @layout@ used by the library /must/ also have been created
---     with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and the @layout@ specified by either library was created with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     then the @layout@ used by both libraries /must/ have been created
---     with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06616# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other subset, and @layout@ was created with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     elements of the @pSetLayouts@ array which @layout@ was created with
---     that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be
---     /identically defined/ to the element at the same index of
---     @pSetLayouts@ used to create the library’s @layout@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and the @layout@ specified by either library was created with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     elements of the @pSetLayouts@ array which either @layout@ was
---     created with that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---     /must/ be /identically defined/ to the element at the same index of
---     @pSetLayouts@ used to create the other library’s @layout@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06618# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other flag, any descriptor set layout /N/ specified by
---     @layout@ in both this pipeline and the library which include
---     bindings accessed by shader stages in each /must/ be /identically
---     defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     any descriptor set layout /N/ specified by @layout@ in both
---     libraries which include bindings accessed by shader stages in each
---     /must/ be /identically defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06620# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other flag, push constants specified in @layout@ in
---     both this pipeline and the library which are available to shader
---     stages in each /must/ be /identically defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     push constants specified in @layout@ in both this pipeline and the
---     library which are available to shader stages in each /must/ be
---     /identically defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06679# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other subset, and any element of the @pSetLayouts@
---     array which @layout@ was created with was
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
---     element of the @pSetLayouts@ array used to create the library’s
---     @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06680# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other subset, and any element of the @pSetLayouts@
---     array used to create the library’s @layout@ was
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
---     element of the @pSetLayouts@ array used to create this pipeline’s
---     @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and any element of the @pSetLayouts@ array used to create each
---     library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     then the corresponding element of the @pSetLayouts@ array used to
---     create the other library’s @layout@ /must/ not be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06756# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other subset, and any element of the @pSetLayouts@
---     array which @layout@ was created with was
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
---     element of the @pSetLayouts@ array used to create the library’s
---     @layout@ /must/ not have shader bindings for shaders in the other
---     subset
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06757# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other subset, and any element of the @pSetLayouts@
---     array used to create the library’s @layout@ was
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
---     element of the @pSetLayouts@ array used to create this pipeline’s
---     @layout@ /must/ not have shader bindings for shaders in the other
---     subset
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and any element of the @pSetLayouts@ array used to create each
---     library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     then the corresponding element of the @pSetLayouts@ array used to
---     create the other library’s @layout@ /must/ not have shader bindings
---     for shaders in the other subset
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06682# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes both
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     @layout@ /must/ have been created with no elements of the
---     @pSetLayouts@ array set to 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06683# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and @pRasterizationState@->@rasterizerDiscardEnable@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', @layout@ /must/ have been
---     created with no elements of the @pSetLayouts@ array set to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06684# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, the value of @subpass@ /must/ be
---     equal to that used to create the library
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     and another element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, the value of @subpass@ used to
---     create each library /must/ be identical
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderpass-06624# If @renderpass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, @renderPass@ /must/ be compatible
---     with that used to create the library
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderpass-06625# If @renderpass@
---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, the value of @renderPass@ used to
---     create that library /must/ also be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06626# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, and @renderPass@ is
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     used by this pipeline and that specified by the library /must/ be
---     identical
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     another element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, and @renderPass@ was
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' for both libraries, the
---     value of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
---     set by each library /must/ be identical
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes at least one of and no more than two of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     and another element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes one of the other flags, the @renderPass@ objects used to
---     create each library /must/ be compatible or all equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     @pMultisampleState@ /must/ be @NULL@ or a valid pointer to a valid
---     'PipelineMultisampleStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderpass-06631# If the pipeline
---     is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and @renderpass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     then @pMultisampleState@ /must/ not be @NULL@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-Input-06632# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     with a fragment shader that either enables
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>
---     or decorates any variable in the @Input@ storage class with
---     @Sample@, then @pMultisampleState@ /must/ not be @NULL@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06633# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
---     with a @pMultisampleState@ that was not @NULL@, and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     @pMultisampleState@ /must/ be /identically defined/ to that used to
---     create the library
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634# If an element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
---     with a @pMultisampleState@ that was not @NULL@, and if
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     @pMultisampleState@ /must/ be /identically defined/ to that used to
---     create the library
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
---     with a @pMultisampleState@ that was not @NULL@, and if a different
---     element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     the @pMultisampleState@ used to create each library /must/ be
---     /identically defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT'
---     and a value of @pMultisampleState->sampleShading@ equal
---     'Vulkan.Core10.FundamentalTypes.TRUE', and if a different element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     the @pMultisampleState@ used to create each library /must/ be
---     /identically defined/
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06637# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     @pMultisampleState->sampleShading@ is
---     'Vulkan.Core10.FundamentalTypes.TRUE', and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     was created with
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     the @pMultisampleState@ used to create that library /must/ be
---     /identically defined/ @pMultisampleState@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06638# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes only one of
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     and an element of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes the other flag, values specified in
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
---     for both this pipeline and that library /must/ be identical
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639# If one element
---     of
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     and another element includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     values specified in
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
---     for both this pipeline and that library /must/ be identical
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06640# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     @pStages@ /must/ be a valid pointer to an array of @stageCount@
---     valid 'PipelineShaderStageCreateInfo' structures
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06641# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     @pRasterizationState@ /must/ be a valid pointer to a valid
---     'PipelineRasterizationStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06642# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'
---     handle
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06643# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
---     and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass'
---     handle
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06644# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     includes
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
---     or
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
---     @stageCount@ /must/ be greater than @0@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06645# If
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     is non-zero, if @flags@ includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',
---     any libraries /must/ have also been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646# If
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes more than one library, and any library was created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',
---     all libraries /must/ have also been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647# If
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
---     includes at least one library,
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
---     is non-zero, and any library was created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',
---     @flags@ /must/ include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648# If the
---     pipeline is not created with a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,
---     or
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@
---     is not @0@,
---     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@
---     and
---     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@pipelineCount@
---     /must/ be @0@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649# If the
---     pipeline is created with a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@
---     is @0@, and the @pNext@ chain includes an instance of
---     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
---     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@
---     /must/ be greater than @0@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-None-07826# If the pipeline
---     includes a
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,
---     'Vulkan.Core10.Handles.PipelineLayout' /must/ be a valid pipeline
---     layout
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07827# If 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
---     <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',
---     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 with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     then @layout@ /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
---     with the union of the libraries\' pipeline layouts other than the
---     inclusion\/exclusion of
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06730# If @flags@ does not
---     include
---     '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 with
---     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
---     then @layout@ /must/ be
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
---     with the union of the libraries\' pipeline layouts
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759#
---     If
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
---     is not supported; the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
---     and
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>;
---     the pipeline does not include a geometry shader; and the value of
---     'PipelineInputAssemblyStateCreateInfo'::@topology@ is
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',
---     or
---     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP',
---     then
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@
---     /must/ be
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760#
---     If
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
---     is not supported, the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the pipeline includes a geometry shader with either the
---     @OutputPoints@ or @OutputLineStrip@ execution modes,
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@
---     /must/ be
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761#
---     If
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
---     is not supported, the pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the pipeline includes a mesh shader with either the
---     @OutputPoints@ or @OutputLinesNV@ execution modes,
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@
---     /must/ be
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06894# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---     but not
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
---     elements of @pStages@ /must/ not have @stage@ set to
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06895# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     but not
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     elements of @pStages@ /must/ not have @stage@ set to a shader stage
---     which participates in pre-rasterization
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06896# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     all elements of @pStages@ /must/ have a @stage@ set to a shader
---     stage which participates in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-stage-06897# If the pipeline is
---     being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
---     and\/or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     any value of @stage@ /must/ not be set in more than one element of
---     @pStages@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400#
---     If the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable>
---     feature is not enabled, there /must/ be no element of the
---     @pDynamicStates@ member of @pDynamicState@ set to
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07401# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07997# @flags@ /must/ not
---     include
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',
---     and if
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
---     is enabled, then the index of the most significant bit in each
---     element of
---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@
---     /must/ be less than @pViewportState@::@viewportCount@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731# If the
---     pipeline is being created with
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and no element of the @pDynamicStates@ member of @pDynamicState@ is
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',
---     and if
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
---     is enabled, then the index of the most significant bit in each
---     element of
---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@
---     /must/ be less than @pViewportState@::@scissorCount@
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-08711# If @pStages@
---     includes a fragment shader stage,
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     is not set in 'PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     member of 'PipelineDepthStencilStateCreateInfo' /must/ be
---     'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-08712# If @pStages@
---     includes a fragment shader stage,
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     is not set in 'PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the value of
---     slink::VkStencilOpState::@writeMask@ for both @front@ and @back@ in
---     'PipelineDepthStencilStateCreateInfo' /must/ be @0@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pNext-pNext# Each @pNext@ member
---     of any structure (including this one) in the @pNext@ chain /must/ be
---     either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',
---     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',
---     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
---     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
---     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',
---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',
---     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
---     'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',
---     or
---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT'
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-sType-unique# The @sType@ value
---     of each struct in the @pNext@ chain /must/ be unique
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-flags-parameter# @flags@ /must/
---     be a valid combination of
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
---     values
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter# If
---     @pDynamicState@ is not @NULL@, @pDynamicState@ /must/ be a valid
---     pointer to a valid 'PipelineDynamicStateCreateInfo' structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-commonparent# Each of
---     @basePipelineHandle@, @layout@, and @renderPass@ that are valid
---     handles of non-ignored parameters /must/ have been created,
---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
--- 'Vulkan.Core10.Handles.Pipeline', 'PipelineColorBlendStateCreateInfo',
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',
--- 'PipelineDepthStencilStateCreateInfo', 'PipelineDynamicStateCreateInfo',
--- 'PipelineInputAssemblyStateCreateInfo',
--- 'Vulkan.Core10.Handles.PipelineLayout',
--- 'PipelineMultisampleStateCreateInfo',
--- 'PipelineRasterizationStateCreateInfo', 'PipelineShaderStageCreateInfo',
--- 'PipelineTessellationStateCreateInfo',
--- 'PipelineVertexInputStateCreateInfo', 'PipelineViewportStateCreateInfo',
--- 'Vulkan.Core10.Handles.RenderPass',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'createGraphicsPipelines'
-data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @flags@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
-    -- specifying how the pipeline will be generated.
-    flags :: PipelineCreateFlags
-  , -- | @stageCount@ is the number of entries in the @pStages@ array.
-    stageCount :: Word32
-  , -- | @pStages@ is a pointer to an array of @stageCount@
-    -- 'PipelineShaderStageCreateInfo' structures describing the set of the
-    -- shader stages to be included in the graphics pipeline.
-    stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
-  , -- | @pVertexInputState@ is a pointer to a
-    -- 'PipelineVertexInputStateCreateInfo' structure. It is ignored if the
-    -- pipeline includes a mesh shader stage. It is ignored if the pipeline is
-    -- created with the
-    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
-    -- dynamic state set.
-    vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)
-  , -- | @pInputAssemblyState@ is a pointer to a
-    -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input
-    -- assembly behavior for vertex shading, as described in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>.
-    -- It is ignored if the pipeline includes a mesh shader stage.
-    inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo
-  , -- | @pTessellationState@ is a pointer to a
-    -- 'PipelineTessellationStateCreateInfo' structure defining tessellation
-    -- state used by tessellation shaders.
-    tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)
-  , -- | @pViewportState@ is a pointer to a 'PipelineViewportStateCreateInfo'
-    -- structure defining viewport state used when rasterization is enabled.
-    viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo)
-  , -- | @pRasterizationState@ is a pointer to a
-    -- 'PipelineRasterizationStateCreateInfo' structure defining rasterization
-    -- state.
-    rasterizationState :: Maybe (SomeStruct PipelineRasterizationStateCreateInfo)
-  , -- | @pMultisampleState@ is a pointer to a
-    -- 'PipelineMultisampleStateCreateInfo' structure defining multisample
-    -- state used when rasterization is enabled.
-    multisampleState :: Maybe (SomeStruct PipelineMultisampleStateCreateInfo)
-  , -- | @pDepthStencilState@ is a pointer to a
-    -- 'PipelineDepthStencilStateCreateInfo' structure defining depth\/stencil
-    -- state used when rasterization is enabled for depth or stencil
-    -- attachments accessed during rendering.
-    depthStencilState :: Maybe PipelineDepthStencilStateCreateInfo
-  , -- | @pColorBlendState@ is a pointer to a 'PipelineColorBlendStateCreateInfo'
-    -- structure defining color blend state used when rasterization is enabled
-    -- for any color attachments accessed during rendering.
-    colorBlendState :: Maybe (SomeStruct PipelineColorBlendStateCreateInfo)
-  , -- | @pDynamicState@ is a pointer to a 'PipelineDynamicStateCreateInfo'
-    -- structure defining which properties of the pipeline state object are
-    -- dynamic and /can/ be changed independently of the pipeline state. This
-    -- /can/ be @NULL@, which means no state in the pipeline is considered
-    -- dynamic.
-    dynamicState :: Maybe PipelineDynamicStateCreateInfo
-  , -- | @layout@ is the description of binding locations used by both the
-    -- pipeline and descriptor sets used with the pipeline.
-    layout :: PipelineLayout
-  , -- | @renderPass@ is a handle to a render pass object describing the
-    -- environment in which the pipeline will be used. The pipeline /must/ only
-    -- be used with a render pass instance compatible with the one provided.
-    -- See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>
-    -- for more information.
-    renderPass :: RenderPass
-  , -- | @subpass@ is the index of the subpass in the render pass where this
-    -- pipeline will be used.
-    subpass :: Word32
-  , -- | @basePipelineHandle@ is a pipeline to derive from.
-    basePipelineHandle :: Pipeline
-  , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use
-    -- as a pipeline to derive from.
-    basePipelineIndex :: Int32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (GraphicsPipelineCreateInfo (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (GraphicsPipelineCreateInfo es)
-
-instance Extensible GraphicsPipelineCreateInfo where
-  extensibleTypeName = "GraphicsPipelineCreateInfo"
-  setNext GraphicsPipelineCreateInfo{..} next' = GraphicsPipelineCreateInfo{next = next', ..}
-  getNext GraphicsPipelineCreateInfo{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends GraphicsPipelineCreateInfo e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @GraphicsPipelineLibraryCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f
-    | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f
-    | Just Refl <- eqT @e @PipelineRenderingCreateInfo = Just f
-    | Just Refl <- eqT @e @PipelineFragmentShadingRateEnumStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineFragmentShadingRateStateCreateInfoKHR = Just f
-    | Just Refl <- eqT @e @PipelineLibraryCreateInfoKHR = Just f
-    | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f
-    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
-    | Just Refl <- eqT @e @PipelineRepresentativeFragmentTestStateCreateInfoNV = Just f
-    | Just Refl <- eqT @e @PipelineDiscardRectangleStateCreateInfoEXT = Just f
-    | Just Refl <- eqT @e @GraphicsPipelineShaderGroupsCreateInfoNV = Just f
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasRepresentationInfoEXT)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkCreateComputePipelines))
+import Vulkan.Dynamic (DeviceCmds(pVkCreateGraphicsPipelines))
+import Vulkan.Dynamic (DeviceCmds(pVkDestroyPipeline))
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.Core10.Enums.DynamicState (DynamicState)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
+import Vulkan.Core10.Enums.Format (Format)
+import Vulkan.Core10.Enums.FrontFace (FrontFace)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (GraphicsPipelineLibraryCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsPipelineShaderGroupsCreateInfoNV)
+import Vulkan.Core10.Enums.LogicOp (LogicOp)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.Core10.Handles (Pipeline)
+import Vulkan.Core10.Handles (Pipeline(..))
+import Vulkan.Core10.Handles (PipelineCache)
+import Vulkan.Core10.Handles (PipelineCache(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)
+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV)
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR)
+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT)
+import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PipelineFragmentShadingRateEnumStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR)
+import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags)
+import Vulkan.Core10.Handles (PipelineLayout)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)
+import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT)
+import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobustnessCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT)
+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PipelineShaderStageNodeCreateInfoAMDX)
+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)
+import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)
+import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)
+import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PipelineViewportExclusiveScissorStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportShadingRateImageStateCreateInfoNV)
+import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV)
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.Core10.Enums.PolygonMode (PolygonMode)
+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)
+import Vulkan.Core10.FundamentalTypes (Rect2D)
+import Vulkan.Core10.Handles (RenderPass)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(SampleCountFlagBits))
+import Vulkan.Core10.FundamentalTypes (SampleMask)
+import Vulkan.Core10.Handles (ShaderModule)
+import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT)
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits)
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.CStruct.Extends (SomeStruct(..))
+import Vulkan.Core10.Enums.StencilOp (StencilOp)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)
+import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Core10.Enums.BlendFactor (BlendFactor(..))
+import Vulkan.Core10.Enums.BlendOp (BlendOp(..))
+import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlagBits(..))
+import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags)
+import Vulkan.Core10.Enums.CompareOp (CompareOp(..))
+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))
+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)
+import Vulkan.Core10.Enums.DynamicState (DynamicState(..))
+import Vulkan.Core10.Enums.FrontFace (FrontFace(..))
+import Vulkan.Core10.Enums.LogicOp (LogicOp(..))
+import Vulkan.Core10.Handles (Pipeline(..))
+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlagBits(..))
+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(..))
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlagBits(..))
+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)
+import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags(..))
+import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags(..))
+import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlagBits(..))
+import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlags)
+import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags(..))
+import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags(..))
+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(..))
+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)
+import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags(..))
+import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags(..))
+import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags(..))
+import Vulkan.Core10.Enums.PolygonMode (PolygonMode(..))
+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))
+import Vulkan.Core10.FundamentalTypes (SampleMask)
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..))
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
+import Vulkan.Core10.Enums.StencilOp (StencilOp(..))
+import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreateGraphicsPipelines
+  :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result
+
+-- | vkCreateGraphicsPipelines - Create graphics pipelines
+--
+-- = Description
+--
+-- The 'GraphicsPipelineCreateInfo' structure includes an array of
+-- 'PipelineShaderStageCreateInfo' structures for each of the desired
+-- active shader stages, as well as creation information for all relevant
+-- fixed-function stages, and a pipeline layout.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member
+--     of any element of @pCreateInfos@ contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and the @basePipelineIndex@ member of that same element is not
+--     @-1@, @basePipelineIndex@ /must/ be less than the index into
+--     @pCreateInfos@ that corresponds to that element
+--
+-- -   #VUID-vkCreateGraphicsPipelines-flags-00721# If the @flags@ member
+--     of any element of @pCreateInfos@ contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, the base pipeline /must/ have been created with the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'
+--     flag set
+--
+-- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-02876# If
+--     @pipelineCache@ was created with
+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',
+--     host access to @pipelineCache@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
+--
+-- Note
+--
+-- An implicit cache may be provided by the implementation or a layer. For
+-- this reason, it is still valid to set
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
+-- on @flags@ for any element of @pCreateInfos@ while passing
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for @pipelineCache@.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreateGraphicsPipelines-device-parameter# @device@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-parameter# If
+--     @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipelineCache@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PipelineCache' handle
+--
+-- -   #VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter#
+--     @pCreateInfos@ /must/ be a valid pointer to an array of
+--     @createInfoCount@ valid 'GraphicsPipelineCreateInfo' structures
+--
+-- -   #VUID-vkCreateGraphicsPipelines-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkCreateGraphicsPipelines-pPipelines-parameter# @pPipelines@
+--     /must/ be a valid pointer to an array of @createInfoCount@
+--     'Vulkan.Core10.Handles.Pipeline' handles
+--
+-- -   #VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength#
+--     @createInfoCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCreateGraphicsPipelines-pipelineCache-parent# If
+--     @pipelineCache@ is a valid handle, it /must/ have been created,
+--     allocated, or retrieved from @device@
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'
+createGraphicsPipelines :: forall io
+                         . (MonadIO io)
+                        => -- | @device@ is the logical device that creates the graphics pipelines.
+                           Device
+                        -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+                           -- indicating that pipeline caching is disabled; or the handle of a valid
+                           -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>
+                           -- object, in which case use of that cache is enabled for the duration of
+                           -- the command.
+                           PipelineCache
+                        -> -- | @pCreateInfos@ is a pointer to an array of 'GraphicsPipelineCreateInfo'
+                           -- structures.
+                           ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo))
+                        -> -- | @pAllocator@ controls host memory allocation as described in the
+                           -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
+                           -- chapter.
+                           ("allocator" ::: Maybe AllocationCallbacks)
+                        -> io (Result, ("pipelines" ::: Vector Pipeline))
+createGraphicsPipelines device
+                          pipelineCache
+                          createInfos
+                          allocator = liftIO . evalContT $ do
+  let vkCreateGraphicsPipelinesPtr = pVkCreateGraphicsPipelines (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreateGraphicsPipelinesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateGraphicsPipelines is null" Nothing Nothing
+  let vkCreateGraphicsPipelines' = mkVkCreateGraphicsPipelines vkCreateGraphicsPipelinesPtr
+  pPCreateInfos <- ContT $ allocaBytes @(GraphicsPipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 144)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (144 * (i)) :: Ptr (GraphicsPipelineCreateInfo _))) (e) . ($ ())) (createInfos)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free
+  r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines'
+                                                              (deviceHandle (device))
+                                                              (pipelineCache)
+                                                              ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))
+                                                              (forgetExtensions (pPCreateInfos))
+                                                              pAllocator
+                                                              (pPPipelines))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
+  pure $ (r, pPipelines)
+
+-- | A convenience wrapper to make a compatible pair of calls to
+-- 'createGraphicsPipelines' and 'destroyPipeline'
+--
+-- To ensure that 'destroyPipeline' is always called: pass
+-- 'Control.Exception.bracket' (or the allocate function from your
+-- favourite resource management library) as the last argument.
+-- To just extract the pair pass '(,)' as the last argument.
+--
+withGraphicsPipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
+withGraphicsPipelines device pipelineCache pCreateInfos pAllocator b =
+  b (createGraphicsPipelines device pipelineCache pCreateInfos pAllocator)
+    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device
+                                                         o1Elem
+                                                         pAllocator) o1)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreateComputePipelines
+  :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result
+
+-- | vkCreateComputePipelines - Creates a new compute pipeline object
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of
+--     any element of @pCreateInfos@ contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and the @basePipelineIndex@ member of that same element is not
+--     @-1@, @basePipelineIndex@ /must/ be less than the index into
+--     @pCreateInfos@ that corresponds to that element
+--
+-- -   #VUID-vkCreateComputePipelines-flags-00696# If the @flags@ member of
+--     any element of @pCreateInfos@ contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, the base pipeline /must/ have been created with the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'
+--     flag set
+--
+-- -   #VUID-vkCreateComputePipelines-pipelineCache-02873# If
+--     @pipelineCache@ was created with
+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',
+--     host access to @pipelineCache@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreateComputePipelines-device-parameter# @device@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreateComputePipelines-pipelineCache-parameter# If
+--     @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipelineCache@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PipelineCache' handle
+--
+-- -   #VUID-vkCreateComputePipelines-pCreateInfos-parameter#
+--     @pCreateInfos@ /must/ be a valid pointer to an array of
+--     @createInfoCount@ valid 'ComputePipelineCreateInfo' structures
+--
+-- -   #VUID-vkCreateComputePipelines-pAllocator-parameter# If @pAllocator@
+--     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure
+--
+-- -   #VUID-vkCreateComputePipelines-pPipelines-parameter# @pPipelines@
+--     /must/ be a valid pointer to an array of @createInfoCount@
+--     'Vulkan.Core10.Handles.Pipeline' handles
+--
+-- -   #VUID-vkCreateComputePipelines-createInfoCount-arraylength#
+--     @createInfoCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCreateComputePipelines-pipelineCache-parent# If
+--     @pipelineCache@ is a valid handle, it /must/ have been created,
+--     allocated, or retrieved from @device@
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'ComputePipelineCreateInfo', 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'
+createComputePipelines :: forall io
+                        . (MonadIO io)
+                       => -- | @device@ is the logical device that creates the compute pipelines.
+                          Device
+                       -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+                          -- indicating that pipeline caching is disabled; or the handle of a valid
+                          -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>
+                          -- object, in which case use of that cache is enabled for the duration of
+                          -- the command.
+                          PipelineCache
+                       -> -- | @pCreateInfos@ is a pointer to an array of 'ComputePipelineCreateInfo'
+                          -- structures.
+                          ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo))
+                       -> -- | @pAllocator@ controls host memory allocation as described in the
+                          -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
+                          -- chapter.
+                          ("allocator" ::: Maybe AllocationCallbacks)
+                       -> io (Result, ("pipelines" ::: Vector Pipeline))
+createComputePipelines device
+                         pipelineCache
+                         createInfos
+                         allocator = liftIO . evalContT $ do
+  let vkCreateComputePipelinesPtr = pVkCreateComputePipelines (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreateComputePipelinesPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateComputePipelines is null" Nothing Nothing
+  let vkCreateComputePipelines' = mkVkCreateComputePipelines vkCreateComputePipelinesPtr
+  pPCreateInfos <- ContT $ allocaBytes @(ComputePipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 96)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (96 * (i)) :: Ptr (ComputePipelineCreateInfo _))) (e) . ($ ())) (createInfos)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free
+  r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines'
+                                                             (deviceHandle (device))
+                                                             (pipelineCache)
+                                                             ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))
+                                                             (forgetExtensions (pPCreateInfos))
+                                                             pAllocator
+                                                             (pPPipelines))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
+  pure $ (r, pPipelines)
+
+-- | A convenience wrapper to make a compatible pair of calls to
+-- 'createComputePipelines' and 'destroyPipeline'
+--
+-- To ensure that 'destroyPipeline' is always called: pass
+-- 'Control.Exception.bracket' (or the allocate function from your
+-- favourite resource management library) as the last argument.
+-- To just extract the pair pass '(,)' as the last argument.
+--
+withComputePipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
+withComputePipelines device pipelineCache pCreateInfos pAllocator b =
+  b (createComputePipelines device pipelineCache pCreateInfos pAllocator)
+    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device
+                                                         o1Elem
+                                                         pAllocator) o1)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkDestroyPipeline
+  :: FunPtr (Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()
+
+-- | vkDestroyPipeline - Destroy a pipeline object
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkDestroyPipeline-pipeline-00765# All submitted commands that
+--     refer to @pipeline@ /must/ have completed execution
+--
+-- -   #VUID-vkDestroyPipeline-pipeline-00766# If
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @pipeline@ was created, a compatible set of callbacks
+--     /must/ be provided here
+--
+-- -   #VUID-vkDestroyPipeline-pipeline-00767# If no
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @pipeline@ was created, @pAllocator@ /must/ be @NULL@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkDestroyPipeline-device-parameter# @device@ /must/ be a valid
+--     'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkDestroyPipeline-pipeline-parameter# If @pipeline@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pipeline@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-vkDestroyPipeline-pAllocator-parameter# If @pAllocator@ is not
+--     @NULL@, @pAllocator@ /must/ be a valid pointer to a valid
+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure
+--
+-- -   #VUID-vkDestroyPipeline-pipeline-parent# If @pipeline@ is a valid
+--     handle, it /must/ have been created, allocated, or retrieved from
+--     @device@
+--
+-- == Host Synchronization
+--
+-- -   Host access to @pipeline@ /must/ be externally synchronized
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Pipeline'
+destroyPipeline :: forall io
+                 . (MonadIO io)
+                => -- | @device@ is the logical device that destroys the pipeline.
+                   Device
+                -> -- | @pipeline@ is the handle of the pipeline to destroy.
+                   Pipeline
+                -> -- | @pAllocator@ controls host memory allocation as described in the
+                   -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
+                   -- chapter.
+                   ("allocator" ::: Maybe AllocationCallbacks)
+                -> io ()
+destroyPipeline device pipeline allocator = liftIO . evalContT $ do
+  let vkDestroyPipelinePtr = pVkDestroyPipeline (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkDestroyPipelinePtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPipeline is null" Nothing Nothing
+  let vkDestroyPipeline' = mkVkDestroyPipeline vkDestroyPipelinePtr
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline'
+                                                 (deviceHandle (device))
+                                                 (pipeline)
+                                                 pAllocator)
+  pure $ ()
+
+
+-- | VkViewport - Structure specifying a viewport
+--
+-- = Description
+--
+-- Note
+--
+-- Despite their names, @minDepth@ /can/ be less than, equal to, or greater
+-- than @maxDepth@.
+--
+-- The framebuffer depth coordinate @z@f /may/ be represented using either
+-- a fixed-point or floating-point representation. However, a
+-- floating-point representation /must/ be used if the depth\/stencil
+-- attachment has a floating-point depth component. If an m-bit fixed-point
+-- representation is used, we assume that it represents each value
+-- \(\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …​, 2m-1 }, as k (e.g. 1.0 is
+-- represented in binary as a string of all ones).
+--
+-- The viewport parameters shown in the above equations are found from
+-- these values as
+--
+-- -   ox = @x@ + @width@ \/ 2
+--
+-- -   oy = @y@ + @height@ \/ 2
+--
+-- -   oz = @minDepth@ (or (@maxDepth@ + @minDepth@) \/ 2 if
+--     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE')
+--
+-- -   px = @width@
+--
+-- -   py = @height@
+--
+-- -   pz = @maxDepth@ - @minDepth@ (or (@maxDepth@ - @minDepth@) \/ 2 if
+--     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE')
+--
+-- If a render pass transform is enabled, the values (px,py) and (ox, oy)
+-- defining the viewport are transformed as described in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>
+-- before participating in the viewport transform.
+--
+-- The application /can/ specify a negative term for @height@, which has
+-- the effect of negating the y coordinate in clip space before performing
+-- the transform. When using a negative @height@, the application /should/
+-- also adjust the @y@ value to point to the lower left corner of the
+-- viewport instead of the upper left corner. Using the negative @height@
+-- allows the application to avoid having to negate the y component of the
+-- @Position@ output from the last
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>.
+--
+-- The width and height of the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>
+-- /must/ be greater than or equal to the width and height of the largest
+-- image which /can/ be created and attached to a framebuffer.
+--
+-- The floating-point viewport bounds are represented with an
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkViewport-width-01770# @width@ /must/ be greater than @0.0@
+--
+-- -   #VUID-VkViewport-width-01771# @width@ /must/ be less than or equal
+--     to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[0]
+--
+-- -   #VUID-VkViewport-apiVersion-07917# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled, the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_negative_viewport_height VK_AMD_negative_viewport_height>
+--     extension is not enabled, and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, @height@ /must/ be greater than @0.0@
+--
+-- -   #VUID-VkViewport-height-01773# The absolute value of @height@ /must/
+--     be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[1]
+--
+-- -   #VUID-VkViewport-x-01774# @x@ /must/ be greater than or equal to
+--     @viewportBoundsRange@[0]
+--
+-- -   #VUID-VkViewport-x-01232# (@x@ + @width@) /must/ be less than or
+--     equal to @viewportBoundsRange@[1]
+--
+-- -   #VUID-VkViewport-y-01775# @y@ /must/ be greater than or equal to
+--     @viewportBoundsRange@[0]
+--
+-- -   #VUID-VkViewport-y-01776# @y@ /must/ be less than or equal to
+--     @viewportBoundsRange@[1]
+--
+-- -   #VUID-VkViewport-y-01777# (@y@ + @height@) /must/ be greater than or
+--     equal to @viewportBoundsRange@[0]
+--
+-- -   #VUID-VkViewport-y-01233# (@y@ + @height@) /must/ be less than or
+--     equal to @viewportBoundsRange@[1]
+--
+-- -   #VUID-VkViewport-minDepth-01234# If the
+--     @VK_EXT_depth_range_unrestricted@ extension is not enabled,
+--     @minDepth@ /must/ be between @0.0@ and @1.0@, inclusive
+--
+-- -   #VUID-VkViewport-maxDepth-01235# If the
+--     @VK_EXT_depth_range_unrestricted@ extension is not enabled,
+--     @maxDepth@ /must/ be between @0.0@ and @1.0@, inclusive
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+-- 'PipelineViewportStateCreateInfo',
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount',
+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'
+data Viewport = Viewport
+  { -- | @x@ and @y@ are the viewport’s upper left corner (x,y).
+    x :: Float
+  , -- No documentation found for Nested "VkViewport" "y"
+    y :: Float
+  , -- | @width@ and @height@ are the viewport’s width and height, respectively.
+    width :: Float
+  , -- No documentation found for Nested "VkViewport" "height"
+    height :: Float
+  , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport.
+    minDepth :: Float
+  , -- No documentation found for Nested "VkViewport" "maxDepth"
+    maxDepth :: Float
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (Viewport)
+#endif
+deriving instance Show Viewport
+
+instance ToCStruct Viewport where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p Viewport{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (x))
+    poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (y))
+    poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (width))
+    poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (height))
+    poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (minDepth))
+    poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (maxDepth))
+    f
+  cStructSize = 24
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (zero))
+    f
+
+instance FromCStruct Viewport where
+  peekCStruct p = do
+    x <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
+    y <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))
+    width <- peek @CFloat ((p `plusPtr` 8 :: Ptr CFloat))
+    height <- peek @CFloat ((p `plusPtr` 12 :: Ptr CFloat))
+    minDepth <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))
+    maxDepth <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))
+    pure $ Viewport
+             (coerce @CFloat @Float x)
+             (coerce @CFloat @Float y)
+             (coerce @CFloat @Float width)
+             (coerce @CFloat @Float height)
+             (coerce @CFloat @Float minDepth)
+             (coerce @CFloat @Float maxDepth)
+
+instance Storable Viewport where
+  sizeOf ~_ = 24
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero Viewport where
+  zero = Viewport
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkSpecializationMapEntry - Structure specifying a specialization map
+-- entry
+--
+-- = Description
+--
+-- If a @constantID@ value is not a specialization constant ID used in the
+-- shader, that map entry does not affect the behavior of the pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkSpecializationMapEntry-constantID-00776# For a @constantID@
+--     specialization constant declared in a shader, @size@ /must/ match
+--     the byte size of the @constantID@. If the specialization constant is
+--     of type @boolean@, @size@ /must/ be the byte size of
+--     'Vulkan.Core10.FundamentalTypes.Bool32'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'SpecializationInfo'
+data SpecializationMapEntry = SpecializationMapEntry
+  { -- | @constantID@ is the ID of the specialization constant in SPIR-V.
+    constantID :: Word32
+  , -- | @offset@ is the byte offset of the specialization constant value within
+    -- the supplied data buffer.
+    offset :: Word32
+  , -- | @size@ is the byte size of the specialization constant value within the
+    -- supplied data buffer.
+    size :: Word64
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SpecializationMapEntry)
+#endif
+deriving instance Show SpecializationMapEntry
+
+instance ToCStruct SpecializationMapEntry where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SpecializationMapEntry{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (constantID)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (offset)
+    poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (size))
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (zero))
+    f
+
+instance FromCStruct SpecializationMapEntry where
+  peekCStruct p = do
+    constantID <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    offset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))
+    pure $ SpecializationMapEntry
+             constantID offset (coerce @CSize @Word64 size)
+
+instance Storable SpecializationMapEntry where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SpecializationMapEntry where
+  zero = SpecializationMapEntry
+           zero
+           zero
+           zero
+
+
+-- | VkSpecializationInfo - Structure specifying specialization information
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkSpecializationInfo-offset-00773# The @offset@ member of each
+--     element of @pMapEntries@ /must/ be less than @dataSize@
+--
+-- -   #VUID-VkSpecializationInfo-pMapEntries-00774# The @size@ member of
+--     each element of @pMapEntries@ /must/ be less than or equal to
+--     @dataSize@ minus @offset@
+--
+-- -   #VUID-VkSpecializationInfo-constantID-04911# The @constantID@ value
+--     of each element of @pMapEntries@ /must/ be unique within
+--     @pMapEntries@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkSpecializationInfo-pMapEntries-parameter# If @mapEntryCount@
+--     is not @0@, @pMapEntries@ /must/ be a valid pointer to an array of
+--     @mapEntryCount@ valid 'SpecializationMapEntry' structures
+--
+-- -   #VUID-VkSpecializationInfo-pData-parameter# If @dataSize@ is not
+--     @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@
+--     bytes
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'PipelineShaderStageCreateInfo',
+-- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT',
+-- 'SpecializationMapEntry'
+data SpecializationInfo = SpecializationInfo
+  { -- | @pMapEntries@ is a pointer to an array of 'SpecializationMapEntry'
+    -- structures, which map constant IDs to offsets in @pData@.
+    mapEntries :: Vector SpecializationMapEntry
+  , -- | @dataSize@ is the byte size of the @pData@ buffer.
+    dataSize :: Word64
+  , -- | @pData@ contains the actual constant values to specialize with.
+    data' :: Ptr ()
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SpecializationInfo)
+#endif
+deriving instance Show SpecializationInfo
+
+instance ToCStruct SpecializationInfo where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SpecializationInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (mapEntries)) :: Word32))
+    pPMapEntries' <- ContT $ allocaBytes @SpecializationMapEntry ((Data.Vector.length (mapEntries)) * 16)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPMapEntries' `plusPtr` (16 * (i)) :: Ptr SpecializationMapEntry) (e)) (mapEntries)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry))) (pPMapEntries')
+    lift $ poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
+    f
+
+instance FromCStruct SpecializationInfo where
+  peekCStruct p = do
+    mapEntryCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    pMapEntries <- peek @(Ptr SpecializationMapEntry) ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry)))
+    pMapEntries' <- generateM (fromIntegral mapEntryCount) (\i -> peekCStruct @SpecializationMapEntry ((pMapEntries `advancePtrBytes` (16 * (i)) :: Ptr SpecializationMapEntry)))
+    dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
+    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
+    pure $ SpecializationInfo
+             pMapEntries' (coerce @CSize @Word64 dataSize) pData
+
+instance Zero SpecializationInfo where
+  zero = SpecializationInfo
+           mempty
+           zero
+           zero
+
+
+-- | VkPipelineShaderStageCreateInfo - Structure specifying parameters of a
+-- newly created pipeline shader stage
+--
+-- = Description
+--
+-- If @module@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader
+-- code used by the pipeline is defined by @module@. If @module@ is
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader code is defined by
+-- the chained 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' if present.
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifier shaderModuleIdentifier>
+-- feature is enabled, applications /can/ omit shader code for @stage@ and
+-- instead provide a module identifier. This is done by including a
+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'
+-- struct with @identifierSize@ not equal to 0 in the @pNext@ chain. A
+-- shader stage created in this way is equivalent to one created using a
+-- shader module with the same identifier. The identifier allows an
+-- implementation to look up a pipeline without consuming a valid SPIR-V
+-- module. If a pipeline is not found, pipeline compilation is not possible
+-- and the implementation /must/ fail as specified by
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'.
+--
+-- When an identifier is used in lieu of a shader module, implementations
+-- /may/ fail pipeline compilation with
+-- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' for any reason.
+--
+-- Note
+--
+-- The rationale for the relaxed requirement on implementations to return a
+-- pipeline with
+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'
+-- is that layers or tools may intercept pipeline creation calls and
+-- require the full SPIR-V context to operate correctly. ICDs are not
+-- expected to fail pipeline compilation if the pipeline exists in a cache
+-- somewhere.
+--
+-- Applications /can/ use identifiers when creating pipelines with
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'.
+-- When creating such pipelines, 'Vulkan.Core10.Enums.Result.SUCCESS' /may/
+-- be returned, but subsequently fail when referencing the pipeline in a
+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
+-- struct. Applications /must/ allow pipeline compilation to fail during
+-- link steps with
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
+-- as it /may/ not be possible to determine if a pipeline /can/ be created
+-- from identifiers until the link step.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00704# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @stage@ /must/ not be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00705# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @stage@ /must/ not be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02091# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShaders>
+--     feature is not enabled, @stage@ /must/ not be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02092# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShaders>
+--     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',
+--     or 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pName-00707# @pName@ /must/ be
+--     the name of an @OpEntryPoint@ in @module@ with an execution model
+--     that matches @stage@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708# If the
+--     identified entry point includes any variable in its interface that
+--     is declared with the @ClipDistance@ @BuiltIn@ decoration, that
+--     variable /must/ not have an array size greater than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxClipDistances@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709# If the
+--     identified entry point includes any variable in its interface that
+--     is declared with the @CullDistance@ @BuiltIn@ decoration, that
+--     variable /must/ not have an array size greater than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCullDistances@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710#
+--     If the identified entry point includes any variables in its
+--     interface that are declared with the @ClipDistance@ or
+--     @CullDistance@ @BuiltIn@ decoration, those variables /must/ not have
+--     array sizes which sum to more than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCombinedClipAndCullDistances@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711# If
+--     the identified entry point includes any variable in its interface
+--     that is declared with the
+--     'Vulkan.Core10.FundamentalTypes.SampleMask' @BuiltIn@ decoration,
+--     that variable /must/ not have an array size greater than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSampleMaskWords@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00713# If @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     and the identified entry point has an @OpExecutionMode@ instruction
+--     specifying a patch size with @OutputVertices@, the patch size /must/
+--     be greater than @0@ and less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00714# If @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',
+--     the identified entry point /must/ have an @OpExecutionMode@
+--     instruction specifying a maximum output vertex count that is greater
+--     than @0@ and less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryOutputVertices@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00715# If @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',
+--     the identified entry point /must/ have an @OpExecutionMode@
+--     instruction specifying an invocation count that is greater than @0@
+--     and less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is
+--     either
+--     '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',
+--     and the identified entry point writes to @Layer@ for any primitive,
+--     it /must/ write the same value to @Layer@ for all vertices of a
+--     given primitive
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02597# If @stage@ is
+--     either
+--     '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',
+--     and the identified entry point writes to @ViewportIndex@ for any
+--     primitive, it /must/ write the same value to @ViewportIndex@ for all
+--     vertices of a given primitive
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06685# If @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
+--     and the identified entry point writes to @FragDepth@ in any
+--     execution path, all execution paths that are not exclusive to helper
+--     invocations /must/ either discard the fragment, or write or
+--     initialize the value of @FragDepth@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06686# If @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
+--     and the identified entry point writes to @FragStencilRefEXT@ in any
+--     execution path, all execution paths that are not exclusive to helper
+--     invocations /must/ either discard the fragment, or write or
+--     initialize the value of @FragStencilRefEXT@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02784# If @flags@ has
+--     the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
+--     flag set, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02785# If @flags@ has
+--     the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
+--     flag set, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-flags-08988# If @flags@
+--     includes
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT',
+--     @stage@ /must/ be one of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT',
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02754# If a
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
+--     structure is included in the @pNext@ chain, @flags@ /must/ not have
+--     the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
+--     flag set
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02755# If a
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
+--     structure is included in the @pNext@ chain, the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>
+--     feature /must/ be enabled, and @stage@ /must/ be a valid bit
+--     specified in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages>
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02756# If a
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
+--     structure is included in the @pNext@ chain and @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT',
+--     the local workgroup size of the shader /must/ be less than or equal
+--     to the product of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-02757# If a
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
+--     structure is included in the @pNext@ chain, and @flags@ has the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
+--     flag set, the local workgroup size in the X dimension of the
+--     pipeline /must/ be a multiple of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02758# If @flags@ has
+--     both the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
+--     and
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
+--     flags set, the local workgroup size in the X dimension of the
+--     pipeline /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-flags-02759# If @flags@ has
+--     the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'
+--     flag set and @flags@ does not have the
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'
+--     flag set and no
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'
+--     structure is included in the @pNext@ chain, the local workgroup size
+--     in the X dimension of the pipeline /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-module-08987# If @module@ uses
+--     the @OpTypeCooperativeMatrixKHR@ instruction with a @Scope@ equal to
+--     @Subgroup@, then the local workgroup size in the X dimension of the
+--     pipeline /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-08771# If a shader
+--     module identifier is not specified for this @stage@, @module@ /must/
+--     be a valid 'Vulkan.Core10.Handles.ShaderModule' if none of the
+--     following features are enabled:
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
+--
+--     -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06845# If a shader
+--     module identifier is not specified for this @stage@, @module@ /must/
+--     be a valid 'Vulkan.Core10.Handles.ShaderModule', or there /must/ be
+--     a valid 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure in
+--     the @pNext@ chain
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06844# If a shader
+--     module identifier is specified for this @stage@, a
+--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure /must/ not
+--     be present in the @pNext@ chain
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-06848# If a shader
+--     module identifier is specified for this @stage@, @module@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849# If
+--     a shader module identifier is not specified, the shader code used by
+--     the pipeline /must/ be valid as described by the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
+--     after applying the specializations provided in
+--     @pSpecializationInfo@, if any, and then converting all
+--     specialization constants into fixed constants
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT',
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.PipelineShaderStageNodeCreateInfoAMDX',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo',
+--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo', or
+--     'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT'
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-sType-unique# The @sType@
+--     value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-flags-parameter# @flags@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-stage-parameter# @stage@
+--     /must/ be a valid
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-module-parameter# If @module@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @module@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.ShaderModule' handle
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pName-parameter# @pName@
+--     /must/ be a null-terminated UTF-8 string
+--
+-- -   #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter#
+--     If @pSpecializationInfo@ is not @NULL@, @pSpecializationInfo@ /must/
+--     be a valid pointer to a valid 'SpecializationInfo' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'ComputePipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
+-- 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlags',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
+-- 'Vulkan.Core10.Handles.ShaderModule',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits',
+-- 'SpecializationInfo', 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'
+    -- specifying how the pipeline shader stage will be generated.
+    flags :: PipelineShaderStageCreateFlags
+  , -- | @stage@ is a
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value
+    -- specifying a single pipeline stage.
+    stage :: ShaderStageFlagBits
+  , -- | @module@ is optionally a 'Vulkan.Core10.Handles.ShaderModule' object
+    -- containing the shader code for this stage.
+    module' :: ShaderModule
+  , -- | @pName@ is a pointer to a null-terminated UTF-8 string specifying the
+    -- entry point name of the shader for this stage.
+    name :: ByteString
+  , -- | @pSpecializationInfo@ is a pointer to a 'SpecializationInfo' structure,
+    -- as described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,
+    -- or @NULL@.
+    specializationInfo :: Maybe SpecializationInfo
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineShaderStageCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineShaderStageCreateInfo es)
+
+instance Extensible PipelineShaderStageCreateInfo where
+  extensibleTypeName = "PipelineShaderStageCreateInfo"
+  setNext PipelineShaderStageCreateInfo{..} next' = PipelineShaderStageCreateInfo{next = next', ..}
+  getNext PipelineShaderStageCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineShaderStageNodeCreateInfoAMDX = Just f
+    | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineShaderStageModuleIdentifierCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f
+    | Just Refl <- eqT @e @DebugUtilsObjectNameInfoEXT = Just f
+    | Just Refl <- eqT @e @ShaderModuleValidationCacheCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @(ShaderModuleCreateInfo '[]) = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineShaderStageCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineShaderStageCreateInfo es) where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineShaderStageCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (stage)
+    lift $ poke ((p `plusPtr` 24 :: Ptr ShaderModule)) (module')
+    pName'' <- ContT $ useAsCString (name)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''
+    pSpecializationInfo'' <- case (specializationInfo) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo))) pSpecializationInfo''
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (zero)
+    pName'' <- ContT $ useAsCString (mempty)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''
+    lift $ f
+
+instance ( Extendss PipelineShaderStageCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineShaderStageCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineShaderStageCreateFlags ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags))
+    stage <- peek @ShaderStageFlagBits ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits))
+    module' <- peek @ShaderModule ((p `plusPtr` 24 :: Ptr ShaderModule))
+    pName <- packCString =<< peek ((p `plusPtr` 32 :: Ptr (Ptr CChar)))
+    pSpecializationInfo <- peek @(Ptr SpecializationInfo) ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo)))
+    pSpecializationInfo' <- maybePeek (\j -> peekCStruct @SpecializationInfo (j)) pSpecializationInfo
+    pure $ PipelineShaderStageCreateInfo
+             next flags stage module' pName pSpecializationInfo'
+
+instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where
+  zero = PipelineShaderStageCreateInfo
+           ()
+           zero
+           zero
+           zero
+           mempty
+           Nothing
+
+
+-- | VkComputePipelineCreateInfo - Structure specifying parameters of a newly
+-- created compute pipeline
+--
+-- = Description
+--
+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are
+-- described in more detail in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
+--
+-- If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain,
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
+-- from that structure is used instead of @flags@ from this structure.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-07984# If @flags@ contains
+--     the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
+--     a valid compute 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-07985# If @flags@ contains
+--     the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and @basePipelineHandle@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/
+--     be a valid index into the calling command’s @pCreateInfos@ parameter
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-07986# If @flags@ contains
+--     the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, @basePipelineIndex@ /must/ be -1 or @basePipelineHandle@
+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-layout-07987# If a push constant
+--     block is declared in a shader, a push constant range in @layout@
+--     /must/ match both the shader stage and range
+--
+-- -   #VUID-VkComputePipelineCreateInfo-layout-07988# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader, a descriptor slot in @layout@ /must/ match
+--     the shader stage
+--
+-- -   #VUID-VkComputePipelineCreateInfo-layout-07990# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader, and the descriptor type is not
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a
+--     descriptor slot in @layout@ /must/ match the descriptor type
+--
+-- -   #VUID-VkComputePipelineCreateInfo-layout-07991# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader as an array, a descriptor slot in @layout@
+--     /must/ match the descriptor count
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03365# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03366# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03367# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03368# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03369# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03370# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-03576# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-04945# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-09007# If @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-09008# If @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
+--     then the @pNext@ chain /must/ include a pointer to a valid instance
+--     of
+--     'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV'
+--     specifying the address where the pipeline’s metadata will be saved
+--
+-- -   #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-stage-00701# The @stage@ member of
+--     @stage@ /must/ be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-stage-00702# The shader code for
+--     the entry point identified by @stage@ and the rest of the state
+--     identified by this structure /must/ adhere to the pipeline linking
+--     rules described in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
+--     chapter
+--
+-- -   #VUID-VkComputePipelineCreateInfo-layout-01687# The number of
+--     resources in @layout@ accessible to the compute shader stage /must/
+--     be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@
+--
+-- -   #VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderEnqueue shaderEnqueue>
+--     is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-09178# If @flags@ does not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR',
+--     the shader specified by @stage@ /must/ not declare the
+--     @ShaderEnqueueAMDX@ capability
+--
+-- -   #VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566#
+--     If
+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@
+--     is not @0@, it /must/ be @1@
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-07367# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-07996# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkComputePipelineCreateInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-pNext-pNext# Each @pNext@ member
+--     of any structure (including this one) in the @pNext@ chain /must/ be
+--     either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',
+--     or
+--     'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI'
+--
+-- -   #VUID-VkComputePipelineCreateInfo-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkComputePipelineCreateInfo-flags-parameter# @flags@ /must/ be
+--     a valid combination of
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkComputePipelineCreateInfo-stage-parameter# @stage@ /must/ be
+--     a valid 'PipelineShaderStageCreateInfo' structure
+--
+-- -   #VUID-VkComputePipelineCreateInfo-layout-parameter# @layout@ /must/
+--     be a valid 'Vulkan.Core10.Handles.PipelineLayout' handle
+--
+-- -   #VUID-VkComputePipelineCreateInfo-commonparent# Both of
+--     @basePipelineHandle@, and @layout@ that are valid handles of
+--     non-ignored parameters /must/ have been created, allocated, or
+--     retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',
+-- 'Vulkan.Core10.Handles.PipelineLayout', 'PipelineShaderStageCreateInfo',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createComputePipelines',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV'
+data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+    -- specifying how the pipeline will be generated.
+    flags :: PipelineCreateFlags
+  , -- | @stage@ is a 'PipelineShaderStageCreateInfo' structure describing the
+    -- compute shader.
+    stage :: SomeStruct PipelineShaderStageCreateInfo
+  , -- | @layout@ is the description of binding locations used by both the
+    -- pipeline and descriptor sets used with the pipeline.
+    layout :: PipelineLayout
+  , -- | @basePipelineHandle@ is a pipeline to derive from.
+    basePipelineHandle :: Pipeline
+  , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use
+    -- as a pipeline to derive from.
+    basePipelineIndex :: Int32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ComputePipelineCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (ComputePipelineCreateInfo es)
+
+instance Extensible ComputePipelineCreateInfo where
+  extensibleTypeName = "ComputePipelineCreateInfo"
+  setNext ComputePipelineCreateInfo{..} next' = ComputePipelineCreateInfo{next = next', ..}
+  getNext ComputePipelineCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ComputePipelineCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f
+    | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f
+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
+    | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
+    | otherwise = Nothing
+
+instance ( Extendss ComputePipelineCreateInfo es
+         , PokeChain es ) => ToCStruct (ComputePipelineCreateInfo es) where
+  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ComputePipelineCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) (flags)
+    ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) (stage) . ($ ())
+    lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (layout)
+    lift $ poke ((p `plusPtr` 80 :: Ptr Pipeline)) (basePipelineHandle)
+    lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (basePipelineIndex)
+    lift $ f
+  cStructSize = 96
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) ((SomeStruct zero)) . ($ ())
+    lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (zero)
+    lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (zero)
+    lift $ f
+
+instance ( Extendss ComputePipelineCreateInfo es
+         , PeekChain es ) => FromCStruct (ComputePipelineCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
+    stage <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _))))
+    layout <- peek @PipelineLayout ((p `plusPtr` 72 :: Ptr PipelineLayout))
+    basePipelineHandle <- peek @Pipeline ((p `plusPtr` 80 :: Ptr Pipeline))
+    basePipelineIndex <- peek @Int32 ((p `plusPtr` 88 :: Ptr Int32))
+    pure $ ComputePipelineCreateInfo
+             next flags stage layout basePipelineHandle basePipelineIndex
+
+instance es ~ '[] => Zero (ComputePipelineCreateInfo es) where
+  zero = ComputePipelineCreateInfo
+           ()
+           zero
+           (SomeStruct zero)
+           zero
+           zero
+           zero
+
+
+-- | VkVertexInputBindingDescription - Structure specifying vertex input
+-- binding description
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkVertexInputBindingDescription-binding-00618# @binding@
+--     /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
+--
+-- -   #VUID-VkVertexInputBindingDescription-stride-00619# @stride@ /must/
+--     be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@
+--
+-- -   #VUID-VkVertexInputBindingDescription-stride-04456# If the
+--     @VK_KHR_portability_subset@ extension is enabled, @stride@ /must/ be
+--     a multiple of, and at least as large as,
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR'::@minVertexInputBindingStrideAlignment@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkVertexInputBindingDescription-inputRate-parameter#
+--     @inputRate@ /must/ be a valid
+--     'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'PipelineVertexInputStateCreateInfo',
+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'
+data VertexInputBindingDescription = VertexInputBindingDescription
+  { -- | @binding@ is the binding number that this structure describes.
+    binding :: Word32
+  , -- | @stride@ is the byte stride between consecutive elements within the
+    -- buffer.
+    stride :: Word32
+  , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'
+    -- value specifying whether vertex attribute addressing is a function of
+    -- the vertex index or of the instance index.
+    inputRate :: VertexInputRate
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (VertexInputBindingDescription)
+#endif
+deriving instance Show VertexInputBindingDescription
+
+instance ToCStruct VertexInputBindingDescription where
+  withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p VertexInputBindingDescription{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (stride)
+    poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (inputRate)
+    f
+  cStructSize = 12
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (zero)
+    f
+
+instance FromCStruct VertexInputBindingDescription where
+  peekCStruct p = do
+    binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    stride <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    inputRate <- peek @VertexInputRate ((p `plusPtr` 8 :: Ptr VertexInputRate))
+    pure $ VertexInputBindingDescription
+             binding stride inputRate
+
+instance Storable VertexInputBindingDescription where
+  sizeOf ~_ = 12
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero VertexInputBindingDescription where
+  zero = VertexInputBindingDescription
+           zero
+           zero
+           zero
+
+
+-- | VkVertexInputAttributeDescription - Structure specifying vertex input
+-- attribute description
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkVertexInputAttributeDescription-location-00620# @location@
+--     /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@
+--
+-- -   #VUID-VkVertexInputAttributeDescription-binding-00621# @binding@
+--     /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
+--
+-- -   #VUID-VkVertexInputAttributeDescription-offset-00622# @offset@
+--     /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@
+--
+-- -   #VUID-VkVertexInputAttributeDescription-format-00623# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     of @format@ /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'
+--
+-- -   #VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457#
+--     If the @VK_KHR_portability_subset@ extension is enabled, and
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus
+--     the size of the vertex attribute data described by @format@ /must/
+--     not be greater than @stride@ in the 'VertexInputBindingDescription'
+--     referenced in @binding@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkVertexInputAttributeDescription-format-parameter# @format@
+--     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Enums.Format.Format',
+-- 'PipelineVertexInputStateCreateInfo'
+data VertexInputAttributeDescription = VertexInputAttributeDescription
+  { -- | @location@ is the shader input location number for this attribute.
+    location :: Word32
+  , -- | @binding@ is the binding number which this attribute takes its data
+    -- from.
+    binding :: Word32
+  , -- | @format@ is the size and type of the vertex attribute data.
+    format :: Format
+  , -- | @offset@ is a byte offset of this attribute relative to the start of an
+    -- element in the vertex input binding.
+    offset :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (VertexInputAttributeDescription)
+#endif
+deriving instance Show VertexInputAttributeDescription
+
+instance ToCStruct VertexInputAttributeDescription where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p VertexInputAttributeDescription{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (location)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (binding)
+    poke ((p `plusPtr` 8 :: Ptr Format)) (format)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (offset)
+    f
+  cStructSize = 16
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr Format)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct VertexInputAttributeDescription where
+  peekCStruct p = do
+    location <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    binding <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    format <- peek @Format ((p `plusPtr` 8 :: Ptr Format))
+    offset <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    pure $ VertexInputAttributeDescription
+             location binding format offset
+
+instance Storable VertexInputAttributeDescription where
+  sizeOf ~_ = 16
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero VertexInputAttributeDescription where
+  zero = VertexInputAttributeDescription
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineVertexInputStateCreateInfo - Structure specifying parameters
+-- of a newly created pipeline vertex input state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613#
+--     @vertexBindingDescriptionCount@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614#
+--     @vertexAttributeDescriptionCount@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-binding-00615# For every
+--     @binding@ specified by each element of
+--     @pVertexAttributeDescriptions@, a 'VertexInputBindingDescription'
+--     /must/ exist in @pVertexBindingDescriptions@ with the same value of
+--     @binding@
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616#
+--     All elements of @pVertexBindingDescriptions@ /must/ describe
+--     distinct binding numbers
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617#
+--     All elements of @pVertexAttributeDescriptions@ /must/ describe
+--     distinct attribute locations
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext# @pNext@
+--     /must/ be @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT'
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-sType-unique# The @sType@
+--     value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask#
+--     @flags@ /must/ be @0@
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter#
+--     If @vertexBindingDescriptionCount@ is not @0@,
+--     @pVertexBindingDescriptions@ /must/ be a valid pointer to an array
+--     of @vertexBindingDescriptionCount@ valid
+--     'VertexInputBindingDescription' structures
+--
+-- -   #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter#
+--     If @vertexAttributeDescriptionCount@ is not @0@,
+--     @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array
+--     of @vertexAttributeDescriptionCount@ valid
+--     'VertexInputAttributeDescription' structures
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
+-- 'Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags.PipelineVertexInputStateCreateFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'VertexInputAttributeDescription', 'VertexInputBindingDescription'
+data PipelineVertexInputStateCreateInfo (es :: [Type]) = PipelineVertexInputStateCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is reserved for future use.
+    flags :: PipelineVertexInputStateCreateFlags
+  , -- | @pVertexBindingDescriptions@ is a pointer to an array of
+    -- 'VertexInputBindingDescription' structures.
+    vertexBindingDescriptions :: Vector VertexInputBindingDescription
+  , -- | @pVertexAttributeDescriptions@ is a pointer to an array of
+    -- 'VertexInputAttributeDescription' structures.
+    vertexAttributeDescriptions :: Vector VertexInputAttributeDescription
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineVertexInputStateCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineVertexInputStateCreateInfo es)
+
+instance Extensible PipelineVertexInputStateCreateInfo where
+  extensibleTypeName = "PipelineVertexInputStateCreateInfo"
+  setNext PipelineVertexInputStateCreateInfo{..} next' = PipelineVertexInputStateCreateInfo{next = next', ..}
+  getNext PipelineVertexInputStateCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineVertexInputStateCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineVertexInputStateCreateInfo es) where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineVertexInputStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32))
+    pPVertexBindingDescriptions' <- ContT $ allocaBytes @VertexInputBindingDescription ((Data.Vector.length (vertexBindingDescriptions)) * 12)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions' `plusPtr` (12 * (i)) :: Ptr VertexInputBindingDescription) (e)) (vertexBindingDescriptions)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription))) (pPVertexBindingDescriptions')
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32))
+    pPVertexAttributeDescriptions' <- ContT $ allocaBytes @VertexInputAttributeDescription ((Data.Vector.length (vertexAttributeDescriptions)) * 16)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions' `plusPtr` (16 * (i)) :: Ptr VertexInputAttributeDescription) (e)) (vertexAttributeDescriptions)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription))) (pPVertexAttributeDescriptions')
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ f
+
+instance ( Extendss PipelineVertexInputStateCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineVertexInputStateCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineVertexInputStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags))
+    vertexBindingDescriptionCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pVertexBindingDescriptions <- peek @(Ptr VertexInputBindingDescription) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription)))
+    pVertexBindingDescriptions' <- generateM (fromIntegral vertexBindingDescriptionCount) (\i -> peekCStruct @VertexInputBindingDescription ((pVertexBindingDescriptions `advancePtrBytes` (12 * (i)) :: Ptr VertexInputBindingDescription)))
+    vertexAttributeDescriptionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    pVertexAttributeDescriptions <- peek @(Ptr VertexInputAttributeDescription) ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription)))
+    pVertexAttributeDescriptions' <- generateM (fromIntegral vertexAttributeDescriptionCount) (\i -> peekCStruct @VertexInputAttributeDescription ((pVertexAttributeDescriptions `advancePtrBytes` (16 * (i)) :: Ptr VertexInputAttributeDescription)))
+    pure $ PipelineVertexInputStateCreateInfo
+             next
+             flags
+             pVertexBindingDescriptions'
+             pVertexAttributeDescriptions'
+
+instance es ~ '[] => Zero (PipelineVertexInputStateCreateInfo es) where
+  zero = PipelineVertexInputStateCreateInfo
+           ()
+           zero
+           mempty
+           mempty
+
+
+-- | VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters
+-- of a newly created pipeline input assembly state
+--
+-- = Description
+--
+-- Restarting the assembly of primitives discards the most recent index
+-- values if those elements formed an incomplete primitive, and restarts
+-- the primitive assembly using the subsequent indices, but only assembling
+-- the immediately following element through the end of the originally
+-- specified elements. The primitive restart index value comparison is
+-- performed before adding the @vertexOffset@ value to the index value.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+--     feature is not enabled, and @topology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST',
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY',
+--     or
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY',
+--     @primitiveRestartEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>
+--     feature is not enabled, and @topology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     @primitiveRestartEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is not enabled, @topology@ /must/ not be any of
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY',
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY',
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY'
+--     or
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY'
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is not enabled, @topology@ /must/ not be
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452# If
+--     the @VK_KHR_portability_subset@ extension is enabled, and
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @topology@ /must/ not be
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_FAN'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext# @pNext@
+--     /must/ be @NULL@
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask#
+--     @flags@ /must/ be @0@
+--
+-- -   #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter#
+--     @topology@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags.PipelineInputAssemblyStateCreateFlags',
+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo
+  { -- | @flags@ is reserved for future use.
+    flags :: PipelineInputAssemblyStateCreateFlags
+  , -- | @topology@ is a
+    -- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' defining the
+    -- primitive topology, as described below.
+    topology :: PrimitiveTopology
+  , -- | @primitiveRestartEnable@ controls whether a special vertex index value
+    -- is treated as restarting the assembly of primitives. This enable only
+    -- applies to indexed draws
+    -- ('Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed',
+    -- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiIndexedEXT', and
+    -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'), and the
+    -- special index value is either 0xFFFFFFFF when the @indexType@ parameter
+    -- of 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' or
+    -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' is equal to
+    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', 0xFF when @indexType@
+    -- is equal to 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', or
+    -- 0xFFFF when @indexType@ is equal to
+    -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16'. Primitive restart is
+    -- not allowed for “list” topologies, unless one of the features
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>
+    -- (for
+    -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST')
+    -- or
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>
+    -- (for all other list topologies) is enabled.
+    primitiveRestartEnable :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineInputAssemblyStateCreateInfo)
+#endif
+deriving instance Show PipelineInputAssemblyStateCreateInfo
+
+instance ToCStruct PipelineInputAssemblyStateCreateInfo where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineInputAssemblyStateCreateInfo{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags)) (flags)
+    poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (topology)
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (primitiveRestartEnable))
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PipelineInputAssemblyStateCreateInfo where
+  peekCStruct p = do
+    flags <- peek @PipelineInputAssemblyStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags))
+    topology <- peek @PrimitiveTopology ((p `plusPtr` 20 :: Ptr PrimitiveTopology))
+    primitiveRestartEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    pure $ PipelineInputAssemblyStateCreateInfo
+             flags topology (bool32ToBool primitiveRestartEnable)
+
+instance Storable PipelineInputAssemblyStateCreateInfo where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineInputAssemblyStateCreateInfo where
+  zero = PipelineInputAssemblyStateCreateInfo
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineTessellationStateCreateInfo - Structure specifying parameters
+-- of a newly created pipeline tessellation state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214#
+--     @patchControlPoints@ /must/ be greater than zero and less than or
+--     equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineTessellationStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext# @pNext@
+--     /must/ be @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'
+--
+-- -   #VUID-VkPipelineTessellationStateCreateInfo-sType-unique# The
+--     @sType@ value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask#
+--     @flags@ /must/ be @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',
+-- 'Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags.PipelineTessellationStateCreateFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineTessellationStateCreateInfo (es :: [Type]) = PipelineTessellationStateCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is reserved for future use.
+    flags :: PipelineTessellationStateCreateFlags
+  , -- | @patchControlPoints@ is the number of control points per patch.
+    patchControlPoints :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineTessellationStateCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineTessellationStateCreateInfo es)
+
+instance Extensible PipelineTessellationStateCreateInfo where
+  extensibleTypeName = "PipelineTessellationStateCreateInfo"
+  setNext PipelineTessellationStateCreateInfo{..} next' = PipelineTessellationStateCreateInfo{next = next', ..}
+  getNext PipelineTessellationStateCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineTessellationStateCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineTessellationDomainOriginStateCreateInfo = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineTessellationStateCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineTessellationStateCreateInfo es) where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineTessellationStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (patchControlPoints)
+    lift $ f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    lift $ f
+
+instance ( Extendss PipelineTessellationStateCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineTessellationStateCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineTessellationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags))
+    patchControlPoints <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pure $ PipelineTessellationStateCreateInfo
+             next flags patchControlPoints
+
+instance es ~ '[] => Zero (PipelineTessellationStateCreateInfo es) where
+  zero = PipelineTessellationStateCreateInfo
+           ()
+           zero
+           zero
+
+
+-- | VkPipelineViewportStateCreateInfo - Structure specifying parameters of a
+-- newly created pipeline viewport state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--     feature is not enabled, @viewportCount@ /must/ not be greater than
+--     @1@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>
+--     feature is not enabled, @scissorCount@ /must/ not be greater than
+--     @1@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218#
+--     @viewportCount@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219#
+--     @scissorCount@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-x-02821# The @x@ and @y@
+--     members of @offset@ member of any element of @pScissors@ /must/ be
+--     greater than or equal to @0@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-offset-02822# Evaluation of
+--     (@offset.x@ + @extent.width@) /must/ not cause a signed integer
+--     addition overflow for any element of @pScissors@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-offset-02823# Evaluation of
+--     (@offset.y@ + @extent.height@) /must/ not cause a signed integer
+--     addition overflow for any element of @pScissors@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If
+--     @scissorCount@ and @viewportCount@ are both not dynamic, then
+--     @scissorCount@ and @viewportCount@ /must/ be identical
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the
+--     graphics pipeline is being created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     set then @viewportCount@ /must/ be @0@, otherwise it /must/ be
+--     greater than @0@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the
+--     graphics pipeline is being created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     set then @scissorCount@ /must/ be @0@, otherwise it /must/ be
+--     greater than @0@
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726#
+--     If the @viewportWScalingEnable@ member of a
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
+--     structure included in the @pNext@ chain is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', the @viewportCount@ member of
+--     the
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
+--     structure /must/ be greater than or equal to
+--     'PipelineViewportStateCreateInfo'::@viewportCount@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',
+--     'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',
+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',
+--     or
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-sType-unique# The @sType@
+--     value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask# @flags@
+--     /must/ be @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineViewportStateCreateFlags.PipelineViewportStateCreateFlags',
+-- 'Vulkan.Core10.FundamentalTypes.Rect2D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'Viewport'
+data PipelineViewportStateCreateInfo (es :: [Type]) = PipelineViewportStateCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is reserved for future use.
+    flags :: PipelineViewportStateCreateFlags
+  , -- | @viewportCount@ is the number of viewports used by the pipeline.
+    viewportCount :: Word32
+  , -- | @pViewports@ is a pointer to an array of 'Viewport' structures, defining
+    -- the viewport transforms. If the viewport state is dynamic, this member
+    -- is ignored.
+    viewports :: Vector Viewport
+  , -- | @scissorCount@ is the number of
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-scissor scissors>
+    -- and /must/ match the number of viewports.
+    scissorCount :: Word32
+  , -- | @pScissors@ is a pointer to an array of
+    -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining the
+    -- rectangular bounds of the scissor for the corresponding viewport. If the
+    -- scissor state is dynamic, this member is ignored.
+    scissors :: Vector Rect2D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineViewportStateCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineViewportStateCreateInfo es)
+
+instance Extensible PipelineViewportStateCreateInfo where
+  extensibleTypeName = "PipelineViewportStateCreateInfo"
+  setNext PipelineViewportStateCreateInfo{..} next' = PipelineViewportStateCreateInfo{next = next', ..}
+  getNext PipelineViewportStateCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineViewportStateCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineViewportDepthClipControlCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineViewportCoarseSampleOrderStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineViewportShadingRateImageStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineViewportExclusiveScissorStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineViewportSwizzleStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineViewportWScalingStateCreateInfoNV = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineViewportStateCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineViewportStateCreateInfo es) where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineViewportStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags)) (flags)
+    let pViewportsLength = Data.Vector.length $ (viewports)
+    viewportCount'' <- lift $ if (viewportCount) == 0
+      then pure $ fromIntegral pViewportsLength
+      else do
+        unless (fromIntegral pViewportsLength == (viewportCount) || pViewportsLength == 0) $
+          throwIO $ IOError Nothing InvalidArgument "" "pViewports must be empty or have 'viewportCount' elements" Nothing Nothing
+        pure (viewportCount)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewportCount'')
+    pViewports'' <- if Data.Vector.null (viewports)
+      then pure nullPtr
+      else do
+        pPViewports <- ContT $ allocaBytes @Viewport (((Data.Vector.length (viewports))) * 24)
+        lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) ((viewports))
+        pure $ pPViewports
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewports''
+    let pScissorsLength = Data.Vector.length $ (scissors)
+    scissorCount'' <- lift $ if (scissorCount) == 0
+      then pure $ fromIntegral pScissorsLength
+      else do
+        unless (fromIntegral pScissorsLength == (scissorCount) || pScissorsLength == 0) $
+          throwIO $ IOError Nothing InvalidArgument "" "pScissors must be empty or have 'scissorCount' elements" Nothing Nothing
+        pure (scissorCount)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (scissorCount'')
+    pScissors'' <- if Data.Vector.null (scissors)
+      then pure nullPtr
+      else do
+        pPScissors <- ContT $ allocaBytes @Rect2D (((Data.Vector.length (scissors))) * 16)
+        lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) ((scissors))
+        pure $ pPScissors
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Rect2D))) pScissors''
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ f
+
+instance ( Extendss PipelineViewportStateCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineViewportStateCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineViewportStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags))
+    viewportCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pViewports <- peek @(Ptr Viewport) ((p `plusPtr` 24 :: Ptr (Ptr Viewport)))
+    let pViewportsLength = if pViewports == nullPtr then 0 else (fromIntegral viewportCount)
+    pViewports' <- generateM pViewportsLength (\i -> peekCStruct @Viewport ((pViewports `advancePtrBytes` (24 * (i)) :: Ptr Viewport)))
+    scissorCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    pScissors <- peek @(Ptr Rect2D) ((p `plusPtr` 40 :: Ptr (Ptr Rect2D)))
+    let pScissorsLength = if pScissors == nullPtr then 0 else (fromIntegral scissorCount)
+    pScissors' <- generateM pScissorsLength (\i -> peekCStruct @Rect2D ((pScissors `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))
+    pure $ PipelineViewportStateCreateInfo
+             next flags viewportCount pViewports' scissorCount pScissors'
+
+instance es ~ '[] => Zero (PipelineViewportStateCreateInfo es) where
+  zero = PipelineViewportStateCreateInfo
+           ()
+           zero
+           zero
+           mempty
+           zero
+           mempty
+
+
+-- | VkPipelineRasterizationStateCreateInfo - Structure specifying parameters
+-- of a newly created pipeline rasterization state
+--
+-- = Description
+--
+-- The application /can/ also add a
+-- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD'
+-- structure to the @pNext@ chain of a
+-- 'PipelineRasterizationStateCreateInfo' structure. This structure enables
+-- selecting the rasterization order to use when rendering with the
+-- corresponding graphics pipeline as described in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order Rasterization Order>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is not enabled, @depthClampEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid fillModeNonSolid>
+--     feature is not enabled, @polygonMode@ /must/ be
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414# If
+--     the @VK_NV_fill_rectangle@ extension is not enabled, @polygonMode@
+--     /must/ not be
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458# If
+--     the @VK_KHR_portability_subset@ extension is enabled, and
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@pointPolygons@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and
+--     @rasterizerDiscardEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',
+--     @polygonMode@ /must/ not be
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext# Each
+--     @pNext@ member of any structure (including this one) in the @pNext@
+--     chain /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',
+--     'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',
+--     or
+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-sType-unique# The
+--     @sType@ value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask#
+--     @flags@ /must/ be @0@
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter#
+--     @polygonMode@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PolygonMode.PolygonMode' value
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter#
+--     @cullMode@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values
+--
+-- -   #VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter#
+--     @frontFace@ /must/ be a valid
+--     'Vulkan.Core10.Enums.FrontFace.FrontFace' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags',
+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace', 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags.PipelineRasterizationStateCreateFlags',
+-- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineRasterizationStateCreateInfo (es :: [Type]) = PipelineRasterizationStateCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is reserved for future use.
+    flags :: PipelineRasterizationStateCreateFlags
+  , -- | @depthClampEnable@ controls whether to clamp the fragment’s depth values
+    -- as described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>.
+    -- If the pipeline is not created with
+    -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'
+    -- present then enabling depth clamp will also disable clipping primitives
+    -- to the z planes of the frustrum as described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.
+    -- Otherwise depth clipping is controlled by the state set in
+    -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.
+    depthClampEnable :: Bool
+  , -- | @rasterizerDiscardEnable@ controls whether primitives are discarded
+    -- immediately before the rasterization stage.
+    rasterizerDiscardEnable :: Bool
+  , -- | @polygonMode@ is the triangle rendering mode. See
+    -- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode'.
+    polygonMode :: PolygonMode
+  , -- | @cullMode@ is the triangle facing direction used for primitive culling.
+    -- See 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits'.
+    cullMode :: CullModeFlags
+  , -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value
+    -- specifying the front-facing triangle orientation to be used for culling.
+    frontFace :: FrontFace
+  , -- | @depthBiasEnable@ controls whether to bias fragment depth values.
+    depthBiasEnable :: Bool
+  , -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant
+    -- depth value added to each fragment.
+    depthBiasConstantFactor :: Float
+  , -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.
+    depthBiasClamp :: Float
+  , -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope
+    -- in depth bias calculations.
+    depthBiasSlopeFactor :: Float
+  , -- | @lineWidth@ is the width of rasterized line segments.
+    lineWidth :: Float
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineRasterizationStateCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineRasterizationStateCreateInfo es)
+
+instance Extensible PipelineRasterizationStateCreateInfo where
+  extensibleTypeName = "PipelineRasterizationStateCreateInfo"
+  setNext PipelineRasterizationStateCreateInfo{..} next' = PipelineRasterizationStateCreateInfo{next = next', ..}
+  getNext PipelineRasterizationStateCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @DepthBiasRepresentationInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineRasterizationStateStreamCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineRasterizationConservativeStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineRasterizationStateRasterizationOrderAMD = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineRasterizationStateCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineRasterizationStateCreateInfo es) where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineRasterizationStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthClampEnable))
+    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (rasterizerDiscardEnable))
+    lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (polygonMode)
+    lift $ poke ((p `plusPtr` 32 :: Ptr CullModeFlags)) (cullMode)
+    lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (frontFace)
+    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (depthBiasEnable))
+    lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (depthBiasConstantFactor))
+    lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (depthBiasClamp))
+    lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (depthBiasSlopeFactor))
+    lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (lineWidth))
+    lift $ f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (zero)
+    lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (zero))
+    lift $ f
+
+instance ( Extendss PipelineRasterizationStateCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineRasterizationStateCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineRasterizationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags))
+    depthClampEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    rasterizerDiscardEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    polygonMode <- peek @PolygonMode ((p `plusPtr` 28 :: Ptr PolygonMode))
+    cullMode <- peek @CullModeFlags ((p `plusPtr` 32 :: Ptr CullModeFlags))
+    frontFace <- peek @FrontFace ((p `plusPtr` 36 :: Ptr FrontFace))
+    depthBiasEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
+    depthBiasConstantFactor <- peek @CFloat ((p `plusPtr` 44 :: Ptr CFloat))
+    depthBiasClamp <- peek @CFloat ((p `plusPtr` 48 :: Ptr CFloat))
+    depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 52 :: Ptr CFloat))
+    lineWidth <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))
+    pure $ PipelineRasterizationStateCreateInfo
+             next
+             flags
+             (bool32ToBool depthClampEnable)
+             (bool32ToBool rasterizerDiscardEnable)
+             polygonMode
+             cullMode
+             frontFace
+             (bool32ToBool depthBiasEnable)
+             (coerce @CFloat @Float depthBiasConstantFactor)
+             (coerce @CFloat @Float depthBiasClamp)
+             (coerce @CFloat @Float depthBiasSlopeFactor)
+             (coerce @CFloat @Float lineWidth)
+
+instance es ~ '[] => Zero (PipelineRasterizationStateCreateInfo es) where
+  zero = PipelineRasterizationStateCreateInfo
+           ()
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineMultisampleStateCreateInfo - Structure specifying parameters
+-- of a newly created pipeline multisample state
+--
+-- = Description
+--
+-- Each bit in the sample mask is associated with a unique
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>
+-- as defined for the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>.
+-- Each bit b for mask word w in the sample mask corresponds to sample
+-- index i, where i = 32 × w + b. @pSampleMask@ has a length equal to ⌈
+-- @rasterizationSamples@ \/ 32 ⌉ words.
+--
+-- If @pSampleMask@ is @NULL@, it is treated as if the mask has all bits
+-- set to @1@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>
+--     feature is not enabled, @sampleShadingEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is not enabled, @alphaToOneEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786#
+--     @minSampleShading@ /must/ be in the range [0,1]
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415#
+--     If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and
+--     if the subpass has any color attachments and @rasterizationSamples@
+--     is greater than the number of color samples, then
+--     @sampleShadingEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV',
+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',
+--     'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV',
+--     or
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-sType-unique# The @sType@
+--     value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask#
+--     @flags@ /must/ be @0@
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter#
+--     @rasterizationSamples@ /must/ be a valid
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
+--
+-- -   #VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter# If
+--     @pSampleMask@ is not @NULL@, @pSampleMask@ /must/ be a valid pointer
+--     to an array of
+--     \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)
+--     'Vulkan.Core10.FundamentalTypes.SampleMask' values
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags.PipelineMultisampleStateCreateFlags',
+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',
+-- 'Vulkan.Core10.FundamentalTypes.SampleMask',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineMultisampleStateCreateInfo (es :: [Type]) = PipelineMultisampleStateCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is reserved for future use.
+    flags :: PipelineMultisampleStateCreateFlags
+  , -- | @rasterizationSamples@ is a
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
+    -- specifying the number of samples used in rasterization. This value is
+    -- ignored for the purposes of setting the number of samples used in
+    -- rasterization if the pipeline is created with the
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+    -- dynamic state set, but if
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' dynamic
+    -- state is not set, it is still used to define the size of the
+    -- @pSampleMask@ array as described below.
+    rasterizationSamples :: SampleCountFlagBits
+  , -- | @sampleShadingEnable@ /can/ be used to enable
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.
+    sampleShadingEnable :: Bool
+  , -- | @minSampleShading@ specifies a minimum fraction of sample shading if
+    -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'.
+    minSampleShading :: Float
+  , -- | @pSampleMask@ is a pointer to an array of
+    -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemask sample mask test>.
+    sampleMask :: Vector SampleMask
+  , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is
+    -- generated based on the alpha component of the fragment’s first color
+    -- output as specified in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>
+    -- section.
+    alphaToCoverageEnable :: Bool
+  , -- | @alphaToOneEnable@ controls whether the alpha component of the
+    -- fragment’s first color output is replaced with one as described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.
+    alphaToOneEnable :: Bool
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineMultisampleStateCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineMultisampleStateCreateInfo es)
+
+instance Extensible PipelineMultisampleStateCreateInfo where
+  extensibleTypeName = "PipelineMultisampleStateCreateInfo"
+  setNext PipelineMultisampleStateCreateInfo{..} next' = PipelineMultisampleStateCreateInfo{next = next', ..}
+  getNext PipelineMultisampleStateCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineMultisampleStateCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineCoverageReductionStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineCoverageModulationStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineSampleLocationsStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineCoverageToColorStateCreateInfoNV = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineMultisampleStateCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineMultisampleStateCreateInfo es) where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineMultisampleStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (rasterizationSamples)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (sampleShadingEnable))
+    lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (minSampleShading))
+    pSampleMask'' <- case Data.Vector.length (sampleMask) of
+      0      -> pure nullPtr
+      vecLen -> do
+        let requiredLen = case (rasterizationSamples) of
+              SampleCountFlagBits n -> (n + 31) `quot` 32
+        lift $ unless (requiredLen == fromIntegral vecLen) $
+          throwIO $ IOError Nothing InvalidArgument "" "sampleMask must be either empty or contain enough bits to cover all the sample specified by 'rasterizationSamples'" Nothing Nothing
+        do
+          pPSampleMask' <- ContT $ allocaBytes @SampleMask ((Data.Vector.length ((sampleMask))) * 4)
+          lift $ Data.Vector.imapM_ (\i e -> poke (pPSampleMask' `plusPtr` (4 * (i)) :: Ptr SampleMask) (e)) ((sampleMask))
+          pure $ pPSampleMask'
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr SampleMask))) pSampleMask''
+    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (alphaToCoverageEnable))
+    lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (alphaToOneEnable))
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ f
+
+instance ( Extendss PipelineMultisampleStateCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineMultisampleStateCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineMultisampleStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags))
+    rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 20 :: Ptr SampleCountFlagBits))
+    sampleShadingEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    minSampleShading <- peek @CFloat ((p `plusPtr` 28 :: Ptr CFloat))
+    pSampleMask <- peek @(Ptr SampleMask) ((p `plusPtr` 32 :: Ptr (Ptr SampleMask)))
+    pSampleMask' <- if pSampleMask == nullPtr
+      then pure mempty
+      else generateM (case rasterizationSamples of
+        SampleCountFlagBits n -> (fromIntegral n + 31) `quot` 32) (\i -> peek @SampleMask (((pSampleMask) `advancePtrBytes` (4 * (i)) :: Ptr SampleMask)))
+    alphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
+    alphaToOneEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
+    pure $ PipelineMultisampleStateCreateInfo
+             next
+             flags
+             rasterizationSamples
+             (bool32ToBool sampleShadingEnable)
+             (coerce @CFloat @Float minSampleShading)
+             pSampleMask'
+             (bool32ToBool alphaToCoverageEnable)
+             (bool32ToBool alphaToOneEnable)
+
+instance es ~ '[] => Zero (PipelineMultisampleStateCreateInfo es) where
+  zero = PipelineMultisampleStateCreateInfo
+           ()
+           zero
+           zero
+           zero
+           zero
+           mempty
+           zero
+           zero
+
+
+-- | VkPipelineColorBlendAttachmentState - Structure specifying a pipeline
+-- color blend attachment state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
+--     feature is not enabled, @srcColorBlendFactor@ /must/ not be
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
+--     feature is not enabled, @dstColorBlendFactor@ /must/ not be
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
+--     feature is not enabled, @srcAlphaBlendFactor@ /must/ not be
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>
+--     feature is not enabled, @dstAlphaBlendFactor@ /must/ not be
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406# If
+--     either of @colorBlendOp@ or @alphaBlendOp@ is an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
+--     then @colorBlendOp@ /must/ equal @alphaBlendOp@
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407#
+--     If
+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE' and @colorBlendOp@ is an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
+--     then @colorBlendOp@ /must/ be the same for all attachments
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408#
+--     If
+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE' and @alphaBlendOp@ is an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
+--     then @alphaBlendOp@ /must/ be the same for all attachments
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409#
+--     If
+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendAllOperations@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @colorBlendOp@
+--     /must/ not be 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_ZERO_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OVER_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OVER_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_IN_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_IN_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OUT_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OUT_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_ATOP_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_ATOP_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_XOR_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_RGB_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARDODGE_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARBURN_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_VIVIDLIGHT_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARLIGHT_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PINLIGHT_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDMIX_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_ALPHA_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_DARKER_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_CLAMPED_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_CONTRAST_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_OVG_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_RED_EXT',
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_GREEN_EXT', or
+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_BLUE_EXT'
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410# If
+--     @colorBlendOp@ or @alphaBlendOp@ is an
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,
+--     then @colorAttachmentCount@ of the subpass this pipeline is compiled
+--     against /must/ be less than or equal to
+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454#
+--     If the @VK_KHR_portability_subset@ extension is enabled, and
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@
+--     /must/ not be
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455#
+--     If the @VK_KHR_portability_subset@ extension is enabled, and
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@
+--     /must/ not be
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter#
+--     @srcColorBlendFactor@ /must/ be a valid
+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter#
+--     @dstColorBlendFactor@ /must/ be a valid
+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter#
+--     @colorBlendOp@ /must/ be a valid
+--     'Vulkan.Core10.Enums.BlendOp.BlendOp' value
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter#
+--     @srcAlphaBlendFactor@ /must/ be a valid
+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter#
+--     @dstAlphaBlendFactor@ /must/ be a valid
+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter#
+--     @alphaBlendOp@ /must/ be a valid
+--     'Vulkan.Core10.Enums.BlendOp.BlendOp' value
+--
+-- -   #VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter#
+--     @colorWriteMask@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'
+--     values
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor',
+-- 'Vulkan.Core10.Enums.BlendOp.BlendOp',
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags',
+-- 'PipelineColorBlendStateCreateInfo'
+data PipelineColorBlendAttachmentState = PipelineColorBlendAttachmentState
+  { -- | @blendEnable@ controls whether blending is enabled for the corresponding
+    -- color attachment. If blending is not enabled, the source fragment’s
+    -- color for that attachment is passed through unmodified.
+    blendEnable :: Bool
+  , -- | @srcColorBlendFactor@ selects which blend factor is used to determine
+    -- the source factors (Sr,Sg,Sb).
+    srcColorBlendFactor :: BlendFactor
+  , -- | @dstColorBlendFactor@ selects which blend factor is used to determine
+    -- the destination factors (Dr,Dg,Db).
+    dstColorBlendFactor :: BlendFactor
+  , -- | @colorBlendOp@ selects which blend operation is used to calculate the
+    -- RGB values to write to the color attachment.
+    colorBlendOp :: BlendOp
+  , -- | @srcAlphaBlendFactor@ selects which blend factor is used to determine
+    -- the source factor Sa.
+    srcAlphaBlendFactor :: BlendFactor
+  , -- | @dstAlphaBlendFactor@ selects which blend factor is used to determine
+    -- the destination factor Da.
+    dstAlphaBlendFactor :: BlendFactor
+  , -- | @alphaBlendOp@ selects which blend operation is used to calculate the
+    -- alpha values to write to the color attachment.
+    alphaBlendOp :: BlendOp
+  , -- | @colorWriteMask@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'
+    -- specifying which of the R, G, B, and\/or A components are enabled for
+    -- writing, as described for the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.
+    colorWriteMask :: ColorComponentFlags
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineColorBlendAttachmentState)
+#endif
+deriving instance Show PipelineColorBlendAttachmentState
+
+instance ToCStruct PipelineColorBlendAttachmentState where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineColorBlendAttachmentState{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (blendEnable))
+    poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (srcColorBlendFactor)
+    poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (dstColorBlendFactor)
+    poke ((p `plusPtr` 12 :: Ptr BlendOp)) (colorBlendOp)
+    poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (srcAlphaBlendFactor)
+    poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (dstAlphaBlendFactor)
+    poke ((p `plusPtr` 24 :: Ptr BlendOp)) (alphaBlendOp)
+    poke ((p `plusPtr` 28 :: Ptr ColorComponentFlags)) (colorWriteMask)
+    f
+  cStructSize = 32
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr BlendOp)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr BlendOp)) (zero)
+    f
+
+instance FromCStruct PipelineColorBlendAttachmentState where
+  peekCStruct p = do
+    blendEnable <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))
+    srcColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 4 :: Ptr BlendFactor))
+    dstColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 8 :: Ptr BlendFactor))
+    colorBlendOp <- peek @BlendOp ((p `plusPtr` 12 :: Ptr BlendOp))
+    srcAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 16 :: Ptr BlendFactor))
+    dstAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 20 :: Ptr BlendFactor))
+    alphaBlendOp <- peek @BlendOp ((p `plusPtr` 24 :: Ptr BlendOp))
+    colorWriteMask <- peek @ColorComponentFlags ((p `plusPtr` 28 :: Ptr ColorComponentFlags))
+    pure $ PipelineColorBlendAttachmentState
+             (bool32ToBool blendEnable)
+             srcColorBlendFactor
+             dstColorBlendFactor
+             colorBlendOp
+             srcAlphaBlendFactor
+             dstAlphaBlendFactor
+             alphaBlendOp
+             colorWriteMask
+
+instance Storable PipelineColorBlendAttachmentState where
+  sizeOf ~_ = 32
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineColorBlendAttachmentState where
+  zero = PipelineColorBlendAttachmentState
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of
+-- a newly created pipeline color blend state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-independentBlend independentBlend>
+--     feature is not enabled, all elements of @pAttachments@ /must/ be
+--     identical
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is not enabled, @logicOpEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607# If
+--     @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', @logicOp@
+--     /must/ be a valid 'Vulkan.Core10.Enums.LogicOp.LogicOp' value
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353# If
+--     @attachmentCount@ is not @0@ , and any of
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
+--     or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
+--     are not set, @pAttachments@ /must/ be a valid pointer to an array of
+--     @attachmentCount@ valid 'PipelineColorBlendAttachmentState'
+--     structures
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT'
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-sType-unique# The @sType@
+--     value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-flags-parameter# @flags@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter# If
+--     @attachmentCount@ is not @0@, and @pAttachments@ is not @NULL@,
+--     @pAttachments@ /must/ be a valid pointer to an array of
+--     @attachmentCount@ valid 'PipelineColorBlendAttachmentState'
+--     structures
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp',
+-- 'PipelineColorBlendAttachmentState',
+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'
+    -- specifying additional color blending information.
+    flags :: PipelineColorBlendStateCreateFlags
+  , -- | @logicOpEnable@ controls whether to apply
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.
+    logicOpEnable :: Bool
+  , -- | @logicOp@ selects which logical operation to apply.
+    logicOp :: LogicOp
+  , -- | @attachmentCount@ is the number of 'PipelineColorBlendAttachmentState'
+    -- elements in @pAttachments@. It is ignored if the pipeline is created
+    -- with
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
+    -- and
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
+    -- dynamic states set, and either
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'
+    -- set or
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-advancedBlendCoherentOperations advancedBlendCoherentOperations>
+    -- is not enabled on the device.
+    attachmentCount :: Word32
+  , -- | @pAttachments@ is a pointer to an array of
+    -- 'PipelineColorBlendAttachmentState' structures defining blend state for
+    -- each color attachment. It is ignored if the pipeline is created with
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
+    -- and
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
+    -- dynamic states set, and either
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'
+    -- set or
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-advancedBlendCoherentOperations advancedBlendCoherentOperations>
+    -- is not enabled on the device.
+    attachments :: Vector PipelineColorBlendAttachmentState
+  , -- | @blendConstants@ is a pointer to an array of four values used as the R,
+    -- G, B, and A components of the blend constant that are used in blending,
+    -- depending on the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.
+    blendConstants :: (Float, Float, Float, Float)
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineColorBlendStateCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PipelineColorBlendStateCreateInfo es)
+
+instance Extensible PipelineColorBlendStateCreateInfo where
+  extensibleTypeName = "PipelineColorBlendStateCreateInfo"
+  setNext PipelineColorBlendStateCreateInfo{..} next' = PipelineColorBlendStateCreateInfo{next = next', ..}
+  getNext PipelineColorBlendStateCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineColorWriteCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PipelineColorBlendStateCreateInfo es
+         , PokeChain es ) => ToCStruct (PipelineColorBlendStateCreateInfo es) where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineColorBlendStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (logicOpEnable))
+    lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (logicOp)
+    let pAttachmentsLength = Data.Vector.length $ (attachments)
+    attachmentCount'' <- lift $ if (attachmentCount) == 0
+      then pure $ fromIntegral pAttachmentsLength
+      else do
+        unless (fromIntegral pAttachmentsLength == (attachmentCount) || pAttachmentsLength == 0) $
+          throwIO $ IOError Nothing InvalidArgument "" "pAttachments must be empty or have 'attachmentCount' elements" Nothing Nothing
+        pure (attachmentCount)
+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (attachmentCount'')
+    pAttachments'' <- if Data.Vector.null (attachments)
+      then pure nullPtr
+      else do
+        pPAttachments <- ContT $ allocaBytes @PipelineColorBlendAttachmentState (((Data.Vector.length (attachments))) * 32)
+        lift $ Data.Vector.imapM_ (\i e -> poke (pPAttachments `plusPtr` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState) (e)) ((attachments))
+        pure $ pPAttachments
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState))) pAttachments''
+    let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))
+    lift $ case (blendConstants) of
+      (e0, e1, e2, e3) -> do
+        poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))
+        poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
+        poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
+        poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
+    lift $ f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (zero)
+    let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))
+    lift $ case ((zero, zero, zero, zero)) of
+      (e0, e1, e2, e3) -> do
+        poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))
+        poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))
+        poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))
+        poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))
+    lift $ f
+
+instance ( Extendss PipelineColorBlendStateCreateInfo es
+         , PeekChain es ) => FromCStruct (PipelineColorBlendStateCreateInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineColorBlendStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags))
+    logicOpEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    logicOp <- peek @LogicOp ((p `plusPtr` 24 :: Ptr LogicOp))
+    attachmentCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    pAttachments <- peek @(Ptr PipelineColorBlendAttachmentState) ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState)))
+    let pAttachmentsLength = if pAttachments == nullPtr then 0 else (fromIntegral attachmentCount)
+    pAttachments' <- generateM pAttachmentsLength (\i -> peekCStruct @PipelineColorBlendAttachmentState ((pAttachments `advancePtrBytes` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState)))
+    let pblendConstants = lowerArrayPtr @CFloat ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))
+    blendConstants0 <- peek @CFloat ((pblendConstants `advancePtrBytes` 0 :: Ptr CFloat))
+    blendConstants1 <- peek @CFloat ((pblendConstants `advancePtrBytes` 4 :: Ptr CFloat))
+    blendConstants2 <- peek @CFloat ((pblendConstants `advancePtrBytes` 8 :: Ptr CFloat))
+    blendConstants3 <- peek @CFloat ((pblendConstants `advancePtrBytes` 12 :: Ptr CFloat))
+    pure $ PipelineColorBlendStateCreateInfo
+             next
+             flags
+             (bool32ToBool logicOpEnable)
+             logicOp
+             attachmentCount
+             pAttachments'
+             (( (coerce @CFloat @Float blendConstants0)
+              , (coerce @CFloat @Float blendConstants1)
+              , (coerce @CFloat @Float blendConstants2)
+              , (coerce @CFloat @Float blendConstants3) ))
+
+instance es ~ '[] => Zero (PipelineColorBlendStateCreateInfo es) where
+  zero = PipelineColorBlendStateCreateInfo
+           ()
+           zero
+           zero
+           zero
+           zero
+           mempty
+           (zero, zero, zero, zero)
+
+
+-- | VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a
+-- newly created pipeline dynamic state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442# Each
+--     element of @pDynamicStates@ /must/ be unique
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineDynamicStateCreateInfo-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext# @pNext@ /must/
+--     be @NULL@
+--
+-- -   #VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask# @flags@
+--     /must/ be @0@
+--
+-- -   #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter# If
+--     @dynamicStateCount@ is not @0@, @pDynamicStates@ /must/ be a valid
+--     pointer to an array of @dynamicStateCount@ valid
+--     'Vulkan.Core10.Enums.DynamicState.DynamicState' values
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Enums.DynamicState.DynamicState',
+-- 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags.PipelineDynamicStateCreateFlags',
+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineDynamicStateCreateInfo = PipelineDynamicStateCreateInfo
+  { -- | @flags@ is reserved for future use.
+    flags :: PipelineDynamicStateCreateFlags
+  , -- | @pDynamicStates@ is a pointer to an array of
+    -- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values specifying which
+    -- pieces of pipeline state will use the values from dynamic state commands
+    -- rather than from pipeline state creation information.
+    dynamicStates :: Vector DynamicState
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineDynamicStateCreateInfo)
+#endif
+deriving instance Show PipelineDynamicStateCreateInfo
+
+instance ToCStruct PipelineDynamicStateCreateInfo where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineDynamicStateCreateInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (dynamicStates)) :: Word32))
+    pPDynamicStates' <- ContT $ allocaBytes @DynamicState ((Data.Vector.length (dynamicStates)) * 4)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicStates' `plusPtr` (4 * (i)) :: Ptr DynamicState) (e)) (dynamicStates)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DynamicState))) (pPDynamicStates')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PipelineDynamicStateCreateInfo where
+  peekCStruct p = do
+    flags <- peek @PipelineDynamicStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags))
+    dynamicStateCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pDynamicStates <- peek @(Ptr DynamicState) ((p `plusPtr` 24 :: Ptr (Ptr DynamicState)))
+    pDynamicStates' <- generateM (fromIntegral dynamicStateCount) (\i -> peek @DynamicState ((pDynamicStates `advancePtrBytes` (4 * (i)) :: Ptr DynamicState)))
+    pure $ PipelineDynamicStateCreateInfo
+             flags pDynamicStates'
+
+instance Zero PipelineDynamicStateCreateInfo where
+  zero = PipelineDynamicStateCreateInfo
+           zero
+           mempty
+
+
+-- | VkStencilOpState - Structure specifying stencil operation state
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp',
+-- 'PipelineDepthStencilStateCreateInfo',
+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp'
+data StencilOpState = StencilOpState
+  { -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying
+    -- the action performed on samples that fail the stencil test.
+    --
+    -- #VUID-VkStencilOpState-failOp-parameter# @failOp@ /must/ be a valid
+    -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
+    failOp :: StencilOp
+  , -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying
+    -- the action performed on samples that pass both the depth and stencil
+    -- tests.
+    --
+    -- #VUID-VkStencilOpState-passOp-parameter# @passOp@ /must/ be a valid
+    -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
+    passOp :: StencilOp
+  , -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
+    -- specifying the action performed on samples that pass the stencil test
+    -- and fail the depth test.
+    --
+    -- #VUID-VkStencilOpState-depthFailOp-parameter# @depthFailOp@ /must/ be a
+    -- valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value
+    depthFailOp :: StencilOp
+  , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value
+    -- specifying the comparison operator used in the stencil test.
+    --
+    -- #VUID-VkStencilOpState-compareOp-parameter# @compareOp@ /must/ be a
+    -- valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value
+    compareOp :: CompareOp
+  , -- | @compareMask@ selects the bits of the unsigned integer stencil values
+    -- participating in the stencil test.
+    compareMask :: Word32
+  , -- | @writeMask@ selects the bits of the unsigned integer stencil values
+    -- updated by the stencil test in the stencil framebuffer attachment.
+    writeMask :: Word32
+  , -- | @reference@ is an integer stencil reference value that is used in the
+    -- unsigned stencil comparison.
+    reference :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (StencilOpState)
+#endif
+deriving instance Show StencilOpState
+
+instance ToCStruct StencilOpState where
+  withCStruct x f = allocaBytes 28 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p StencilOpState{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StencilOp)) (failOp)
+    poke ((p `plusPtr` 4 :: Ptr StencilOp)) (passOp)
+    poke ((p `plusPtr` 8 :: Ptr StencilOp)) (depthFailOp)
+    poke ((p `plusPtr` 12 :: Ptr CompareOp)) (compareOp)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (compareMask)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (writeMask)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (reference)
+    f
+  cStructSize = 28
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StencilOp)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr StencilOp)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr StencilOp)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr CompareOp)) (zero)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct StencilOpState where
+  peekCStruct p = do
+    failOp <- peek @StencilOp ((p `plusPtr` 0 :: Ptr StencilOp))
+    passOp <- peek @StencilOp ((p `plusPtr` 4 :: Ptr StencilOp))
+    depthFailOp <- peek @StencilOp ((p `plusPtr` 8 :: Ptr StencilOp))
+    compareOp <- peek @CompareOp ((p `plusPtr` 12 :: Ptr CompareOp))
+    compareMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    writeMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    reference <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ StencilOpState
+             failOp passOp depthFailOp compareOp compareMask writeMask reference
+
+instance Storable StencilOpState where
+  sizeOf ~_ = 28
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero StencilOpState where
+  zero = StencilOpState
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters
+-- of a newly created pipeline depth stencil state
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is not enabled, @depthBoundsTestEnable@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453#
+--     If the @VK_KHR_portability_subset@ extension is enabled, and
+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@separateStencilMaskRef@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', and the value of
+--     'PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the value of
+--     'PipelineRasterizationStateCreateInfo'::@cullMode@ is
+--     'Vulkan.Core10.Enums.CullModeFlagBits.CULL_MODE_NONE', the value of
+--     @reference@ in each of the 'StencilOpState' structs in @front@ and
+--     @back@ /must/ be the same
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO'
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext# @pNext@
+--     /must/ be @NULL@
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter# @flags@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter#
+--     @depthCompareOp@ /must/ be a valid
+--     'Vulkan.Core10.Enums.CompareOp.CompareOp' value
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter# @front@
+--     /must/ be a valid 'StencilOpState' structure
+--
+-- -   #VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter# @back@
+--     /must/ be a valid 'StencilOpState' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp', 'GraphicsPipelineCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlags',
+-- 'StencilOpState', 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineDepthStencilStateCreateInfo = PipelineDepthStencilStateCreateInfo
+  { -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'
+    -- specifying additional depth\/stencil state information.
+    flags :: PipelineDepthStencilStateCreateFlags
+  , -- | @depthTestEnable@ controls whether
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth testing>
+    -- is enabled.
+    depthTestEnable :: Bool
+  , -- | @depthWriteEnable@ controls whether
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-write depth writes>
+    -- are enabled when @depthTestEnable@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Depth writes are always disabled
+    -- when @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.
+    depthWriteEnable :: Bool
+  , -- | @depthCompareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value
+    -- specifying the comparison operator to use in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparison Depth Comparison>
+    -- step of the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>.
+    depthCompareOp :: CompareOp
+  , -- | @depthBoundsTestEnable@ controls whether
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds testing>
+    -- is enabled.
+    depthBoundsTestEnable :: Bool
+  , -- | @stencilTestEnable@ controls whether
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil testing>
+    -- is enabled.
+    stencilTestEnable :: Bool
+  , -- | @front@ and @back@ are 'StencilOpState' values controlling the
+    -- corresponding parameters of the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>.
+    front :: StencilOpState
+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "back"
+    back :: StencilOpState
+  , -- | @minDepthBounds@ is the minimum depth bound used in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.
+    minDepthBounds :: Float
+  , -- | @maxDepthBounds@ is the maximum depth bound used in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.
+    maxDepthBounds :: Float
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineDepthStencilStateCreateInfo)
+#endif
+deriving instance Show PipelineDepthStencilStateCreateInfo
+
+instance ToCStruct PipelineDepthStencilStateCreateInfo where
+  withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineDepthStencilStateCreateInfo{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags)) (flags)
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthTestEnable))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (depthWriteEnable))
+    poke ((p `plusPtr` 28 :: Ptr CompareOp)) (depthCompareOp)
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (depthBoundsTestEnable))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (stencilTestEnable))
+    poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (front)
+    poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (back)
+    poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (minDepthBounds))
+    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (maxDepthBounds))
+    f
+  cStructSize = 104
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 28 :: Ptr CompareOp)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (zero)
+    poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (zero)
+    poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (zero))
+    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (zero))
+    f
+
+instance FromCStruct PipelineDepthStencilStateCreateInfo where
+  peekCStruct p = do
+    flags <- peek @PipelineDepthStencilStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags))
+    depthTestEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    depthWriteEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    depthCompareOp <- peek @CompareOp ((p `plusPtr` 28 :: Ptr CompareOp))
+    depthBoundsTestEnable <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    stencilTestEnable <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
+    front <- peekCStruct @StencilOpState ((p `plusPtr` 40 :: Ptr StencilOpState))
+    back <- peekCStruct @StencilOpState ((p `plusPtr` 68 :: Ptr StencilOpState))
+    minDepthBounds <- peek @CFloat ((p `plusPtr` 96 :: Ptr CFloat))
+    maxDepthBounds <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))
+    pure $ PipelineDepthStencilStateCreateInfo
+             flags
+             (bool32ToBool depthTestEnable)
+             (bool32ToBool depthWriteEnable)
+             depthCompareOp
+             (bool32ToBool depthBoundsTestEnable)
+             (bool32ToBool stencilTestEnable)
+             front
+             back
+             (coerce @CFloat @Float minDepthBounds)
+             (coerce @CFloat @Float maxDepthBounds)
+
+instance Storable PipelineDepthStencilStateCreateInfo where
+  sizeOf ~_ = 104
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineDepthStencilStateCreateInfo where
+  zero = PipelineDepthStencilStateCreateInfo
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkGraphicsPipelineCreateInfo - Structure specifying parameters of a
+-- newly created graphics pipeline
+--
+-- = Description
+--
+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are
+-- described in more detail in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
+--
+-- If any shader stage fails to compile, the compile log will be reported
+-- back to the application, and
+-- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated.
+--
+-- Note
+--
+-- With @VK_EXT_extended_dynamic_state3@, it is possible that many of the
+-- 'GraphicsPipelineCreateInfo' members above /can/ be @NULL@ because all
+-- their state is dynamic and therefore ignored. This is optional so the
+-- application /can/ still use a valid pointer if it needs to set the
+-- @pNext@ or @flags@ fields to specify state for other extensions.
+--
+-- The state required for a graphics pipeline is divided into
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output state>.
+--
+-- __Vertex Input State__
+--
+-- Vertex input state is defined by:
+--
+-- -   'PipelineVertexInputStateCreateInfo'
+--
+-- -   'PipelineInputAssemblyStateCreateInfo'
+--
+-- If this pipeline specifies
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization state>
+-- either directly or by including it as a pipeline library and its
+-- @pStages@ includes a vertex shader, this state /must/ be specified to
+-- create a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>.
+--
+-- If a pipeline includes
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT'
+-- in
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+-- either explicitly or as a default, and either the conditions requiring
+-- this state for a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>
+-- are met or this pipeline does not specify
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization state>
+-- in any way, that pipeline /must/ specify this state directly.
+--
+-- __Pre-Rasterization Shader State__
+--
+-- Pre-rasterization shader state is defined by:
+--
+-- -   'PipelineShaderStageCreateInfo' entries for:
+--
+--     -   Vertex shaders
+--
+--     -   Tessellation control shaders
+--
+--     -   Tessellation evaluation shaders
+--
+--     -   Geometry shaders
+--
+--     -   Task shaders
+--
+--     -   Mesh shaders
+--
+-- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor
+--     sets with pre-rasterization shader bindings if
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--     was specified.
+--
+--     -   If
+--         'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--         was not specified, the full pipeline layout must be specified.
+--
+-- -   'PipelineViewportStateCreateInfo'
+--
+-- -   'PipelineRasterizationStateCreateInfo'
+--
+-- -   'PipelineTessellationStateCreateInfo'
+--
+-- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter
+--
+-- -   The @viewMask@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
+--     (formats are ignored)
+--
+-- -   'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'
+--
+-- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
+--
+-- This state /must/ be specified to create a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>.
+--
+-- If either the @pNext@ chain includes a
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'
+-- structure with
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+-- included in @flags@, or it is not specified and would default to include
+-- that value, this state /must/ be specified in the pipeline.
+--
+-- __Fragment Shader State__
+--
+-- Fragment shader state is defined by:
+--
+-- -   A 'PipelineShaderStageCreateInfo' entry for the fragment shader
+--
+-- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor
+--     sets with fragment shader bindings if
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--     was specified.
+--
+--     -   If
+--         'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--         was not specified, the full pipeline layout must be specified.
+--
+-- -   'PipelineMultisampleStateCreateInfo' if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>
+--     is enabled or @renderpass@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   'PipelineDepthStencilStateCreateInfo'
+--
+-- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter
+--
+-- -   The @viewMask@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
+--     (formats are ignored)
+--
+-- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
+--
+-- -   'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'
+--
+-- -   'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'
+--
+-- -   Inclusion\/omission of the
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--     flag
+--
+-- -   Inclusion\/omission of the
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--     flag
+--
+-- If a pipeline specifies
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization state>
+-- either directly or by including it as a pipeline library and
+-- @rasterizerDiscardEnable@ is set to
+-- 'Vulkan.Core10.FundamentalTypes.FALSE' or
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+-- is used, this state /must/ be specified to create a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>.
+--
+-- If a pipeline includes
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
+-- in
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+-- either explicitly or as a default, and either the conditions requiring
+-- this state for a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>
+-- are met or this pipeline does not specify
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization state>
+-- in any way, that pipeline /must/ specify this state directly.
+--
+-- __Fragment Output State__
+--
+-- Fragment output state is defined by:
+--
+-- -   'PipelineColorBlendStateCreateInfo'
+--
+-- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter
+--
+-- -   'PipelineMultisampleStateCreateInfo'
+--
+-- -   'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
+--
+-- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--
+-- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--
+-- -   'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--
+-- -   Inclusion\/omission of the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--     and
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--     flags
+--
+-- If a pipeline specifies
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization state>
+-- either directly or by including it as a pipeline library and
+-- @rasterizerDiscardEnable@ is set to
+-- 'Vulkan.Core10.FundamentalTypes.FALSE' or
+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+-- is used, this state /must/ be specified to create a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>.
+--
+-- If a pipeline includes
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT'
+-- in
+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+-- either explicitly or as a default, and either the conditions requiring
+-- this state for a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>
+-- are met or this pipeline does not specify
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization state>
+-- in any way, that pipeline /must/ specify this state directly.
+--
+-- __Dynamic State__
+--
+-- Dynamic state values set via @pDynamicState@ /must/ be ignored if the
+-- state they correspond to is not otherwise statically set by one of the
+-- state subsets used to create the pipeline. Additionally, setting dynamic
+-- state values /must/ not modify whether state in a linked library is
+-- static or dynamic; this is set and unchangeable when the library is
+-- created. For example, if a pipeline only included
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+-- then any dynamic state value corresponding to depth or stencil testing
+-- has no effect. Any linked library that has dynamic state enabled that
+-- same dynamic state /must/ also be enabled in all the other linked
+-- libraries to which that dynamic state applies.
+--
+-- __Complete Graphics Pipelines__
+--
+-- A complete graphics pipeline always includes
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+-- with other subsets included depending on that state as specified in the
+-- above sections.
+--
+-- __Graphics Pipeline Library Layouts__
+--
+-- If different subsets are linked together with pipeline layouts created
+-- with
+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+-- the final effective pipeline layout is effectively the union of the
+-- linked pipeline layouts. When binding descriptor sets for this pipeline,
+-- the pipeline layout used /must/ be compatible with this union. This
+-- pipeline layout /can/ be overridden when linking with
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'
+-- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+-- with this union other than
+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+-- or when linking without
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'
+-- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is fully
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+-- with this union.
+--
+-- If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain,
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
+-- from that structure is used instead of @flags@ from this structure.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07984# If @flags@ contains
+--     the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
+--     a valid graphics 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07985# If @flags@ contains
+--     the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and @basePipelineHandle@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/
+--     be a valid index into the calling command’s @pCreateInfos@ parameter
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07986# If @flags@ contains
+--     the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, @basePipelineIndex@ /must/ be -1 or @basePipelineHandle@
+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07987# If a push constant
+--     block is declared in a shader, a push constant range in @layout@
+--     /must/ match both the shader stage and range
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07988# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader, a descriptor slot in @layout@ /must/ match
+--     the shader stage
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07990# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader, and the descriptor type is not
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a
+--     descriptor slot in @layout@ /must/ match the descriptor type
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07991# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader as an array, a descriptor slot in @layout@
+--     /must/ match the descriptor count
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     the @stage@ member of one element of @pStages@ /must/ be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     the geometric shader stages provided in @pStages@ /must/ be either
+--     from the mesh shading pipeline (@stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT')
+--     or from the primitive shading pipeline (@stage@ is
+--     '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-VkGraphicsPipelineCreateInfo-TaskNV-07063# The shader stages
+--     for
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     /must/ use either the @TaskNV@ and @MeshNV@ @Execution@ @Model@ or
+--     the @TaskEXT@ and @MeshEXT@ @Execution@ @Model@, but /must/ not use
+--     both
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes a tessellation control shader stage, it
+--     /must/ include a tessellation evaluation shader stage
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes a tessellation evaluation shader stage, it
+--     /must/ include a tessellation control shader stage
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-09022# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes a tessellation control shader stage, and the
+--     @VK_EXT_extended_dynamic_state3@ extension is not enabled or the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state is not set, @pTessellationState@ /must/ be a valid
+--     pointer to a valid 'PipelineTessellationStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023# If
+--     @pTessellationState@ is not @NULL@ it /must/ be a pointer to a valid
+--     'PipelineTessellationStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes tessellation shader stages, the shader code
+--     of at least one stage /must/ contain an @OpExecutionMode@
+--     instruction specifying the type of subdivision in the pipeline
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes tessellation shader stages, and the shader
+--     code of both stages contain an @OpExecutionMode@ instruction
+--     specifying the type of subdivision in the pipeline, they /must/ both
+--     specify the same subdivision mode
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes tessellation shader stages, the shader code
+--     of at least one stage /must/ contain an @OpExecutionMode@
+--     instruction specifying the output patch size in the pipeline
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes tessellation shader stages, and the shader
+--     code of both contain an @OpExecutionMode@ instruction specifying the
+--     out patch size in the pipeline, they /must/ both specify the same
+--     patch size
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-08888# If the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and @pStages@ includes tessellation shader stages, and either
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state is not enabled or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', the @topology@ member of
+--     @pInputAssembly@ /must/ be
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-topology-08889# If the pipeline
+--     is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and the @topology@ member of @pInputAssembly@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',
+--     and either
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state is not enabled or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @pStages@ /must/
+--     include tessellation shader stages
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723# If
+--     the pipeline is being created with a @TessellationEvaluation@
+--     @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the
+--     @PointMode@ @Execution@ @Mode@, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
+--     is enabled, a @PointSize@ decorated variable /must/ be written to if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-topology-08773# If the pipeline
+--     is being created with a @Vertex@ @Execution@ @Model@ and no
+--     @TessellationEvaluation@ or @Geometry@ @Execution@ @Model@, and the
+--     @topology@ member of @pInputAssembly@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',
+--     and either
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state is not enabled or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', a @PointSize@ decorated
+--     variable /must/ be written to if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is enabled and a @PointSize@ decorated variable is written to, all
+--     execution paths /must/ write to a @PointSize@ decorated variable
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724# If
+--     the pipeline is being created with a @TessellationEvaluation@
+--     @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the
+--     @PointMode@ @Execution@ @Mode@, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
+--     is not enabled, a @PointSize@ decorated variable /must/ not be
+--     written to
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776#
+--     If the pipeline is being created with a @Geometry@ @Execution@
+--     @Model@, uses the @OutputPoints@ @Execution@ @Mode@, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
+--     is enabled, a @PointSize@ decorated variable /must/ be written to
+--     for every vertex emitted if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-Geometry-07726# If the pipeline
+--     is being created with a @Geometry@ @Execution@ @Model@, uses the
+--     @OutputPoints@ @Execution@ @Mode@, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize shaderTessellationAndGeometryPointSize>
+--     is not enabled, a @PointSize@ decorated variable /must/ not be
+--     written to
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes a geometry shader stage, and does not include
+--     any tessellation shader stages, its shader code /must/ contain an
+--     @OpExecutionMode@ instruction specifying an input primitive type
+--     that is
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>
+--     with the primitive topology specified in @pInputAssembly@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @pStages@ includes a geometry shader stage, and also includes
+--     tessellation shader stages, its shader code /must/ contain an
+--     @OpExecutionMode@ instruction specifying an input primitive type
+--     that is
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>
+--     with the primitive topology that is output by the tessellation
+--     stages
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     it includes both a fragment shader and a geometry shader, and the
+--     fragment shader code reads from an input variable that is decorated
+--     with @PrimitiveId@, then the geometry shader code /must/ write to a
+--     matching output variable, decorated with @PrimitiveId@, in all
+--     execution paths
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     it includes a mesh shader and the fragment shader code reads from an
+--     input variable that is decorated with @PrimitiveId@, then the mesh
+--     shader code /must/ write to a matching output variable, decorated
+--     with @PrimitiveId@, in all execution paths
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06038# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     the fragment shader /must/ not read from any input attachment that
+--     is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in
+--     @subpass@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and multiple pre-rasterization shader stages are included in
+--     @pStages@, the shader code for the entry points identified by those
+--     @pStages@ and the rest of the state identified by this structure
+--     /must/ adhere to the pipeline linking rules described in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
+--     chapter
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     the fragment shader and last
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
+--     and any relevant state /must/ adhere to the pipeline linking rules
+--     described in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
+--     chapter
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06041# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     then for each color attachment in the subpass, if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
+--     of the format of the corresponding attachment description 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-VkGraphicsPipelineCreateInfo-renderPass-07609# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and the @pColorBlendState@ pointer is not @NULL@, and the subpass
+--     uses color attachments, the @attachmentCount@ member of
+--     @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@
+--     used to create @subpass@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and @pViewportState->pViewports@ is not dynamic, then
+--     @pViewportState->pViewports@ /must/ be a valid pointer to an array
+--     of @pViewportState->viewportCount@ valid 'Viewport' structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and @pViewportState->pScissors@ is not dynamic, then
+--     @pViewportState->pScissors@ /must/ be a valid pointer to an array of
+--     @pViewportState->scissorCount@
+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>
+--     feature is not enabled, and no element of the @pDynamicStates@
+--     member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the
+--     @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024# If
+--     the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+--     dynamic state is enabled or the @rasterizerDiscardEnable@ member of
+--     @pRasterizationState@ is 'Vulkan.Core10.FundamentalTypes.FALSE', and
+--     either the @VK_EXT_extended_dynamic_state3@ extension is not
+--     enabled, or either the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     dynamic states are not set, @pViewportState@ /must/ be a valid
+--     pointer to a valid 'PipelineViewportStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025# If
+--     @pViewportState@ is not @NULL@ it /must/ be a valid pointer to a
+--     valid 'PipelineViewportStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and the graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+--     dynamic state enabled, @pViewportState@ /must/ be a valid pointer to
+--     a valid 'PipelineViewportStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and the @VK_EXT_extended_dynamic_state3@ extension is not enabled or
+--     any of the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic states is not set, or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     is enabled on the device and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     is not set, @pMultisampleState@ /must/ be a valid pointer to a valid
+--     'PipelineMultisampleStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027# If
+--     @pMultisampleState@ is not @NULL@ is /must/ be a valid pointer to a
+--     valid 'PipelineMultisampleStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-08891# If
+--     the pipeline is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     the 'PipelineMultisampleStateCreateInfo'::@alphaToCoverageEnable@ is
+--     not ignored and is 'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09028# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and @subpass@ uses a depth\/stencil attachment, and the
+--     @VK_EXT_extended_dynamic_state3@ extension is not enabled or, any of
+--     the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic states are not set, @pDepthStencilState@ /must/ be a valid
+--     pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029# If
+--     @pDepthStencilState@ is not @NULL@ it /must/ be a valid pointer to a
+--     valid 'PipelineDepthStencilStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09030# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @subpass@ uses color attachments, and
+--     @VK_EXT_extended_dynamic_state3@ extension is not enabled, or any of
+--     the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic states are not set, @pColorBlendState@ /must/ be a valid
+--     pointer to a valid 'PipelineColorBlendStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>
+--     feature is not enabled, no element of the @pDynamicStates@ member of
+--     @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the
+--     @depthBiasEnable@ member of @pRasterizationState@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', the @depthBiasClamp@ member
+--     of @pRasterizationState@ /must/ be @0.0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the @VK_EXT_depth_range_unrestricted@ extension is not enabled
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and
+--     the @depthBoundsTestEnable@ member of @pDepthStencilState@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', the @minDepthBounds@ and
+--     @maxDepthBounds@ members of @pDepthStencilState@ /must/ be between
+--     @0.0@ and @1.0@, inclusive
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @rasterizationSamples@ and @sampleLocationsInfo@ are not
+--     dynamic, and
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     included in the @pNext@ chain of @pMultisampleState@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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-VkGraphicsPipelineCreateInfo-pDynamicStates-07611# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @rasterizationSamples@ and @sampleLocationsInfo@ are not
+--     dynamic, and
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     the included in the @pNext@ chain of @pMultisampleState@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     is used, @sampleLocationsInfo.sampleLocationGridSize.height@ /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-VkGraphicsPipelineCreateInfo-pDynamicStates-07612# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @rasterizationSamples@ and @sampleLocationsInfo@ are not
+--     dynamic, and
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     included in the @pNext@ chain of @pMultisampleState@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     is used, @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal
+--     @rasterizationSamples@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If
+--     the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'
+--     structure included in the @pNext@ chain of @pMultisampleState@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', the fragment shader code
+--     /must/ not statically use the extended instruction
+--     @InterpolateAtSample@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and none of the @VK_AMD_mixed_attachment_samples@ extension, the
+--     @VK_NV_framebuffer_mixed_samples@ extension, or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--     feature are enabled, @rasterizationSamples@ is not dynamic, and if
+--     @subpass@ uses color and\/or depth\/stencil attachments, then the
+--     @rasterizationSamples@ member of @pMultisampleState@ /must/ be the
+--     same as the sample count for those subpass attachments
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and the @VK_AMD_mixed_attachment_samples@ extension is enabled,
+--     @rasterizationSamples@ is not dynamic, and if @subpass@ uses color
+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@
+--     member of @pMultisampleState@ /must/ equal the maximum of the sample
+--     counts of those subpass attachments
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06854# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     @VK_EXT_multisampled_render_to_single_sampled@ extension is enabled,
+--     @rasterizationSamples@ is not dynamic, and @subpass@ has a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure included in the
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'::@pNext@
+--     chain with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ member of @pMultisampleState@ /must/ be equal
+--     to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled,
+--     @rasterizationSamples@ is not dynamic, and if @subpass@ has a
+--     depth\/stencil attachment and depth test, stencil test, or depth
+--     bounds test are enabled, then the @rasterizationSamples@ member of
+--     @pMultisampleState@ /must/ be the same as the sample count of the
+--     depth\/stencil attachment
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled,
+--     @rasterizationSamples@ is not dynamic, and if @subpass@ has any
+--     color attachments, then the @rasterizationSamples@ member of
+--     @pMultisampleState@ /must/ be greater than or equal to the sample
+--     count for those subpass attachments
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If
+--     the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     the @VK_NV_coverage_reduction_mode@ extension is enabled, and
+--     @rasterizationSamples@ is not dynamic, the coverage reduction mode
+--     specified by
+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@,
+--     the @rasterizationSamples@ member of @pMultisampleState@ 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-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @rasterizationSamples@ is not dynamic, and @subpass@ does not use
+--     any color and\/or depth\/stencil attachments, then the
+--     @rasterizationSamples@ member of @pMultisampleState@ /must/ follow
+--     the rules for a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06046# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @subpass@ /must/ be
+--     a valid subpass within @renderPass@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     @subpass@ viewMask is not @0@, and @multiviewTessellationShader@ is
+--     not enabled, then @pStages@ /must/ not include tessellation shaders
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     @subpass@ viewMask is not @0@, and @multiviewGeometryShader@ is not
+--     enabled, then @pStages@ /must/ not include a geometry shader
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06049# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and @subpass@ viewMask is not @0@, all of the shaders in the
+--     pipeline /must/ not write to the @Layer@ built-in output
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06050# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and @subpass@ viewMask is not @0@, then all of the shaders in the
+--     pipeline /must/ not include variables decorated with the @Layer@
+--     built-in decoration in their interfaces
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07717# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and @subpass@ viewMask is not @0@, then all of the shaders in the
+--     pipeline /must/ not include variables decorated with the @ViewMask@
+--     built-in decoration in their interfaces
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07064# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     @subpass@ viewMask is not @0@, and @multiviewMeshShader@ is not
+--     enabled, then @pStages@ /must/ not include a mesh shader
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not
+--     contain the
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE'
+--     flag
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and an input attachment was referenced by an @aspectMask@ at
+--     @renderPass@ creation time, the fragment shader /must/ only read
+--     from the aspects that were specified for that input attachment
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-01688# The number of
+--     resources in @layout@ accessible to each shader stage that is used
+--     by the pipeline /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV',
+--     and the @viewportWScalingEnable@ member of a
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
+--     structure, included in the @pNext@ chain of @pViewportState@, is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', the @pViewportWScalings@
+--     member of the
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'
+--     /must/ be a pointer to an array of
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@
+--     valid
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.ViewportWScalingNV'
+--     structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV',
+--     and if @pViewportState->pNext@ chain includes a
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'
+--     structure, and if its @exclusiveScissorCount@ member is not @0@,
+--     then its @pExclusiveScissors@ member /must/ be a valid pointer to an
+--     array of @exclusiveScissorCount@
+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854# If
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     is included in the @pDynamicStates@ array then the implementation
+--     /must/ support at least @specVersion@ @2@ of the
+--     @VK_NV_scissor_exclusive@ extension
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV',
+--     and if @pViewportState->pNext@ chain includes a
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'
+--     structure, then its @pShadingRatePalettes@ member /must/ be a valid
+--     pointer to an array of @viewportCount@ valid
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.ShadingRatePaletteNV'
+--     structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT',
+--     and if @pNext@ chain includes a
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'
+--     structure, and if its @discardRectangleCount@ member is not @0@,
+--     then its @pDiscardRectangles@ member /must/ be a valid pointer to an
+--     array of @discardRectangleCount@
+--     'Vulkan.Core10.FundamentalTypes.Rect2D' structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855# If
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     is included in the @pDynamicStates@ array then the implementation
+--     /must/ support at least @specVersion@ @2@ of the
+--     @VK_EXT_discard_rectangles@ extension
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856# If
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     is included in the @pDynamicStates@ array then the implementation
+--     /must/ support at least @specVersion@ @2@ of the
+--     @VK_EXT_discard_rectangles@ extension
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02097# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
+--     and @pVertexInputState@ is not dynamic, then @pVertexInputState@
+--     /must/ be a valid pointer to a valid
+--     'PipelineVertexInputStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-Input-07904# If the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and @pVertexInputState@ is not dynamic, then all variables with the
+--     @Input@ storage class decorated with @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ contain a location in
+--     'VertexInputAttributeDescription'::@location@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-Input-08733# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and @pVertexInputState@ is not dynamic, then the numeric type
+--     associated with all @Input@ variables of the corresponding
+--     @Location@ in the @Vertex@ @Execution@ @Model@ @OpEntryPoint@ /must/
+--     be the same as 'VertexInputAttributeDescription'::@format@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929# If the
+--     pipeline is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and @pVertexInputState@ is not dynamic, and
+--     'VertexInputAttributeDescription'::@format@ has a 64-bit component,
+--     then the scalar width associated with all @Input@ variables of the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930# If the
+--     pipeline is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and @pVertexInputState@ is not dynamic, and the scalar width
+--     associated with a @Location@ decorated @Input@ variable in the
+--     @Vertex@ @Execution@ @Model@ @OpEntryPoint@ is 64-bit, then the
+--     corresponding 'VertexInputAttributeDescription'::@format@ /must/
+--     have a 64-bit component
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-09198# If the
+--     pipeline is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and @pVertexInputState@ is not dynamic, and
+--     'VertexInputAttributeDescription'::@format@ has a 64-bit component,
+--     then all @Input@ variables at the corresponding @Location@ in the
+--     @Vertex@ @Execution@ @Model@ @OpEntryPoint@ /must/ not use
+--     components that are not present in the format
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>,
+--     and the @VK_EXT_extended_dynamic_state3@ extension is not enabled,
+--     or either
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE',
+--     or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic states are not set, or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @pInputAssemblyState@
+--     /must/ be a valid pointer to a valid
+--     'PipelineInputAssemblyStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032# If
+--     @pInputAssemblyState@ is not @NULL@ it /must/ be a valid pointer to
+--     a valid 'PipelineInputAssemblyStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     the @Xfb@ execution mode /can/ be specified by no more than one
+--     shader stage in @pStages@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and any shader stage in @pStages@ specifies @Xfb@ execution mode it
+--     /must/ be the last
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and a
+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
+--     value other than zero is specified, all variables in the output
+--     interface of the entry point being compiled decorated with
+--     @Position@, @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be
+--     decorated with identical @Stream@ values that match the
+--     @rasterizationStream@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
+--     is zero, or not specified, all variables in the output interface of
+--     the entry point being compiled decorated with @Position@,
+--     @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be decorated
+--     with a @Stream@ value of zero, or /must/ not specify the @Stream@
+--     decoration
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and the last
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
+--     is a geometry shader, and that geometry shader uses the
+--     @GeometryStreams@ capability, then
+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and there are any mesh shader stages in the pipeline there /must/
+--     not be any shader stage in the pipeline with a @Xfb@ execution mode
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766# If
+--     the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and at least one of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and @pMultisampleState@ is not @NULL@, the @lineRasterizationMode@
+--     member of a
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'
+--     structure included in the @pNext@ chain of @pRasterizationState@ is
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',
+--     then the @alphaToCoverageEnable@, @alphaToOneEnable@, and
+--     @sampleShadingEnable@ members of @pMultisampleState@ /must/ all be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     the @stippledLineEnable@ member of
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the
+--     @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT',
+--     then the @lineStippleFactor@ member of
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'
+--     /must/ be in the range [1,256]
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03372# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03373# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03374# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03375# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03376# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03377# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-03577# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04947# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--     feature is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is less than
+--     Version 1.3 there /must/ be no element of the @pDynamicStates@
+--     member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',
+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     is included in the @pDynamicStates@ array then @viewportCount@
+--     /must/ be zero
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     is included in the @pDynamicStates@ array then @scissorCount@ /must/
+--     be zero
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     is included in the @pDynamicStates@ array then
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not
+--     be present
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+--     is included in the @pDynamicStates@ array then
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' /must/ not
+--     be present
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and includes a mesh shader, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY',
+--     or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>
+--     feature is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is less than
+--     Version 1.3 there /must/ be no element of the @pDynamicStates@
+--     member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE',
+--     or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and includes a mesh shader, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE',
+--     or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
+--     then all stages /must/ not specify @Xfb@ execution mode
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648# If the
+--     pipeline is not created with a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,
+--     or
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@
+--     is not @0@,
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@
+--     and
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@pipelineCount@
+--     /must/ be @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649# If the
+--     pipeline is created with a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,
+--     and
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@
+--     is @0@, and the @pNext@ chain includes an instance of
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@
+--     /must/ be greater than @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07369# @flags@ /must/ not
+--     include both
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'
+--     and
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
+--     /must/ be greater than or equal to @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
+--     /must/ be greater than or equal to @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
+--     /must/ be a power-of-two value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
+--     /must/ be a power-of-two value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
+--     /must/ be less than or equal to @4@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
+--     /must/ be less than or equal to @4@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@
+--     and
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@
+--     /must/ both be equal to @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]
+--     /must/ be a valid
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
+--     value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]
+--     /must/ be a valid
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
+--     value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]
+--     /must/ be
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]
+--     /must/ be
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported,
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
+--     is not included in @pDynamicState->pDynamicStates@, and
+--     'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than
+--     @1@, entry points specified in @pStages@ /must/ not write to the
+--     @PrimitiveShadingRateKHR@ built-in
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and entry points specified in @pStages@
+--     write to the @ViewportIndex@ built-in, they /must/ not also write to
+--     the @PrimitiveShadingRateKHR@ built-in
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and entry points specified in @pStages@
+--     write to the @ViewportMaskNV@ built-in, they /must/ not also write
+--     to the @PrimitiveShadingRateKHR@ built-in
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>
+--     limit is not supported, and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, elements of
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@
+--     /must/ be
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-06569# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@
+--     /must/ be a valid
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateTypeNV'
+--     value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
+--     /must/ be a valid
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateNV'
+--     value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]
+--     /must/ be a valid
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
+--     value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]
+--     /must/ be a valid
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
+--     value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]
+--     /must/ be
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]
+--     /must/ be
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573#
+--     If the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>
+--     limit is not supported and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     is not included in @pDynamicState->pDynamicStates@, elements of
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@
+--     /must/ be
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'
+--     or
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
+--     /must/ not be equal to
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV',
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV',
+--     or
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>
+--     feature is not enabled,
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@
+--     /must/ not be equal to
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578# All
+--     elements of the @pDynamicStates@ member of @pDynamicState@ /must/
+--     not be
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and includes a mesh shader, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If
+--     the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the @VK_QCOM_render_pass_shader_resolve@ extension is enabled,
+--     @rasterizationSamples@ is not dynamic, and if subpass has any input
+--     attachments, and if the subpass description contains
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',
+--     then the sample count of the input attachments /must/ equal
+--     @rasterizationSamples@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and the @VK_QCOM_render_pass_shader_resolve@ extension is enabled,
+--     and if the subpass description contains
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',
+--     then @sampleShadingEnable@ /must/ be false
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04901# If @flags@ includes
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',
+--     then the subpass /must/ be the last subpass in a subpass dependency
+--     chain
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04902# If @flags@ includes
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',
+--     and if @pResolveAttachments@ is not @NULL@, then each resolve
+--     attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06575# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a
+--     valid render pass object
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>
+--     feature is not enabled and the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-multiview-06577# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>
+--     feature is not enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     /must/ be @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06578# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     index of the most significant bit in
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     /must/ be less than
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06579# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
+--     is not 0,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     /must/ be a valid pointer to an array of @colorAttachmentCount@
+--     valid 'Vulkan.Core10.Enums.Format.Format' values
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06580# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', each
+--     element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06582# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and any
+--     element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', that format
+--     /must/ be a format with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
+--     that include
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06583# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06584# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06585# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
+--     format with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
+--     that include
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06586# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
+--     format with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
+--     that include
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06587# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
+--     format that includes a depth component
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06588# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a
+--     format that includes a stencil component
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06589# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
+--     @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09033# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and either of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     or
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and the
+--     @VK_EXT_extended_dynamic_state3@ extension is not enabled or any of
+--     the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic states are not set, @pDepthStencilState@ /must/ be a valid
+--     pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034# If
+--     @pDepthStencilState@ is not @NULL@ it /must/ be a valid pointer to a
+--     valid 'PipelineDepthStencilStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09035# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     but not
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and the @VK_EXT_extended_dynamic_state3@ extension is not enabled,
+--     or any of the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic states are not set, @pDepthStencilState@ /must/ be a valid
+--     pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036# If
+--     @pDepthStencilState@ is not @NULL@ it /must/ be a valid pointer to a
+--     valid 'PipelineDepthStencilStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-09037# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
+--     is not equal to @0@, and the @VK_EXT_extended_dynamic_state3@
+--     extension is not enabled, or any of the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic states are not set, @pColorBlendState@ /must/ be a valid
+--     pointer to a valid 'PipelineColorBlendStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038# If
+--     @pColorBlendState@ is not @NULL@ it /must/ be a valid pointer to a
+--     valid 'PipelineColorBlendStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06055# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', @pColorBlendState@ is
+--     not dynamic, and the pipeline is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @pColorBlendState->attachmentCount@ /must/ be equal to
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06057# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>
+--     feature is not enabled, then @pStages@ /must/ not include
+--     tessellation shaders
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06058# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>
+--     feature is not enabled, then @pStages@ /must/ not include a geometry
+--     shader
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07718# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, all of the shaders in the pipeline /must/ not write to
+--     the @Layer@ built-in output
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06059# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, all of the shaders in the pipeline /must/ not include
+--     variables decorated with the @Layer@ built-in decoration in their
+--     interfaces
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07719# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, all of the shaders in the pipeline /must/ not include
+--     variables decorated with the @ViewIndex@ built-in decoration in
+--     their interfaces
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07720# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, and @multiviewMeshShader@ is not enabled, then @pStages@
+--     /must/ not include a mesh shader
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     fragment shaders in @pStages@ /must/ not include the
+--     @InputAttachment@ capability
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-08710# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     fragment shaders in @pStages@ /must/ not include any of the
+--     @TileImageColorReadAccessEXT@, @TileImageDepthReadAccessEXT@, or
+--     @TileImageStencilReadAccessEXT@ capabilities
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06062# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', for
+--     each color attachment format defined by the
+--     @pColorAttachmentFormats@ member of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
+--     if its
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential 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-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the
+--     @pNext@ chain includes
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV',
+--     the @colorAttachmentCount@ member of that structure /must/ be equal
+--     to the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06591# If @pStages@
+--     includes a fragment shader stage, and the fragment shader declares
+--     the @EarlyFragmentTests@ execution mode, the @flags@ member of
+--     'PipelineDepthStencilStateCreateInfo' /must/ not include
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     and the @flags@ member of 'PipelineColorBlendStateCreateInfo'
+--     includes
+--     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT',
+--     @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'
+--     includes
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT',
+--     @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     elements of the @pColorAttachmentSamples@ member of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     /must/ be valid
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     and the @depthStencilAttachmentSamples@ member of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
+--     or
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
+--     is not 0, it /must/ be a valid
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--     and the @flags@ member of 'PipelineColorBlendStateCreateInfo'
+--     includes
+--     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
+--     @subpass@ /must/ have been created with
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'
+--     includes
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT',
+--     @subpass@ /must/ have been created with
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'
+--     includes
+--     'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT',
+--     @subpass@ /must/ have been created with
+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594#
+--     If
+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@
+--     is not @0@, it /must/ be equal to @stageCount@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06595# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     and
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE' then
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
+--     /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06596# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other flag, the value of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
+--     specified in both this pipeline and the library /must/ be equal
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     the value of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@
+--     specified in both libraries /must/ be equal
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06598# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other flag, the value of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
+--     specified in both this pipeline and the library /must/ be equal
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     the value of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@
+--     specified in both libraries /must/ be equal
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06600# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     @pStages@ /must/ be a valid pointer to an array of @stageCount@
+--     valid 'PipelineShaderStageCreateInfo' structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039# If the
+--     @VK_EXT_extended_dynamic_state3@ extension is not enabled, or any of
+--     the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic states are not set, or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     is enabled on the device and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     is not set, then @pMultisampleState@ /must/ be a valid pointer to a
+--     valid 'PipelineMultisampleStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040# If
+--     @pRasterizationState@ is not @NULL@ it /must/ be a valid pointer to
+--     a valid 'PipelineRasterizationStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-06602# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'
+--     handle
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06603# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output state>,
+--     and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass'
+--     handle
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-stageCount-06604# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     @stageCount@ /must/ be greater than @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the pipeline
+--     defines, or includes as libraries, all the state subsets required
+--     for a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete graphics pipeline>,
+--     @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06609# If @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',
+--     pipeline libraries included via
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-09245# If @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT',
+--     @flags@ /must/ also include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06610# If @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT',
+--     pipeline libraries included via
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611# Any pipeline
+--     libraries included via
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     /must/ not include any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets state subset>
+--     already defined by this structure or defined by any other pipeline
+--     library in
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06612# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other flag, and @layout@ was not created with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     then the @layout@ used by this pipeline and the library /must/ be
+--     /identically defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and the @layout@ specified by either library was not created with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     then the @layout@ used by each library /must/ be /identically
+--     defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06614# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other subset, and @layout@ was created with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     then the @layout@ used by the library /must/ also have been created
+--     with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and the @layout@ specified by either library was created with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     then the @layout@ used by both libraries /must/ have been created
+--     with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06616# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other subset, and @layout@ was created with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     elements of the @pSetLayouts@ array which @layout@ was created with
+--     that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be
+--     /identically defined/ to the element at the same index of
+--     @pSetLayouts@ used to create the library’s @layout@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and the @layout@ specified by either library was created with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     elements of the @pSetLayouts@ array which either @layout@ was
+--     created with that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     /must/ be /identically defined/ to the element at the same index of
+--     @pSetLayouts@ used to create the other library’s @layout@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06618# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other flag, any descriptor set layout /N/ specified by
+--     @layout@ in both this pipeline and the library which include
+--     bindings accessed by shader stages in each /must/ be /identically
+--     defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     any descriptor set layout /N/ specified by @layout@ in both
+--     libraries which include bindings accessed by shader stages in each
+--     /must/ be /identically defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06620# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other flag, push constants specified in @layout@ in
+--     both this pipeline and the library which are available to shader
+--     stages in each /must/ be /identically defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     push constants specified in @layout@ in both this pipeline and the
+--     library which are available to shader stages in each /must/ be
+--     /identically defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06679# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other subset, and any element of the @pSetLayouts@
+--     array which @layout@ was created with was
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
+--     element of the @pSetLayouts@ array used to create the library’s
+--     @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06680# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other subset, and any element of the @pSetLayouts@
+--     array used to create the library’s @layout@ was
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
+--     element of the @pSetLayouts@ array used to create this pipeline’s
+--     @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and any element of the @pSetLayouts@ array used to create each
+--     library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     then the corresponding element of the @pSetLayouts@ array used to
+--     create the other library’s @layout@ /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06756# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other subset, and any element of the @pSetLayouts@
+--     array which @layout@ was created with was
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
+--     element of the @pSetLayouts@ array used to create the library’s
+--     @layout@ /must/ not have shader bindings for shaders in the other
+--     subset
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06757# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other subset, and any element of the @pSetLayouts@
+--     array used to create the library’s @layout@ was
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding
+--     element of the @pSetLayouts@ array used to create this pipeline’s
+--     @layout@ /must/ not have shader bindings for shaders in the other
+--     subset
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and any element of the @pSetLayouts@ array used to create each
+--     library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     then the corresponding element of the @pSetLayouts@ array used to
+--     create the other library’s @layout@ /must/ not have shader bindings
+--     for shaders in the other subset
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06682# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes both
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     @layout@ /must/ have been created with no elements of the
+--     @pSetLayouts@ array set to 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06683# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and @pRasterizationState->rasterizerDiscardEnable@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', @layout@ /must/ have been
+--     created with no elements of the @pSetLayouts@ array set to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06684# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, the value of @subpass@ /must/ be
+--     equal to that used to create the library
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and another element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, the value of @subpass@ used to
+--     create each library /must/ be identical
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderpass-06624# If @renderpass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, @renderPass@ /must/ be compatible
+--     with that used to create the library
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderpass-06625# If @renderpass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, the value of @renderPass@ used to
+--     create that library /must/ also be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06626# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, and @renderPass@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     used by this pipeline and that specified by the library /must/ be
+--     identical
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     another element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, and @renderPass@ was
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' for both libraries, the
+--     value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     set by each library /must/ be identical
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes at least one of and no more than two of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and another element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes one of the other flags, the @renderPass@ objects used to
+--     create each library /must/ be compatible or all equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     @pMultisampleState@ /must/ be @NULL@ or a valid pointer to a valid
+--     'PipelineMultisampleStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderpass-06631# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and @renderpass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     then @pMultisampleState@ /must/ not be @NULL@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-Input-06632# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     with a fragment shader that either enables
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>
+--     or decorates any variable in the @Input@ storage class with
+--     @Sample@, then @pMultisampleState@ /must/ not be @NULL@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06633# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
+--     with a @pMultisampleState@ that was not @NULL@, and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     @pMultisampleState@ /must/ be /identically defined/ to that used to
+--     create the library
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634# If an element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
+--     with a @pMultisampleState@ that was not @NULL@, and if
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     @pMultisampleState@ /must/ be /identically defined/ to that used to
+--     create the library
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'
+--     with a @pMultisampleState@ that was not @NULL@, and if a different
+--     element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     the @pMultisampleState@ used to create each library /must/ be
+--     /identically defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT'
+--     and a value of @pMultisampleState->sampleShading@ equal
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and if a different element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     the @pMultisampleState@ used to create each library /must/ be
+--     /identically defined/
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06637# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     @pMultisampleState->sampleShading@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     was created with
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     the @pMultisampleState@ used to create that library /must/ be
+--     /identically defined/ @pMultisampleState@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06638# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes only one of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and an element of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes the other flag, values specified in
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
+--     for both this pipeline and that library /must/ be identical
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639# If one element
+--     of
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     and another element includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     values specified in
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'
+--     for both this pipeline and that library /must/ be identical
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06640# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     @pStages@ /must/ be a valid pointer to an array of @stageCount@
+--     valid 'PipelineShaderStageCreateInfo' structures
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-09041# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     and the @VK_EXT_extended_dynamic_state3@ extension is not enabled,
+--     or any of the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic states are not set, or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     is enabled on the device and
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--     is not set, @pMultisampleState@ /must/ be a valid pointer to a valid
+--     'PipelineMultisampleStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09042# If
+--     @pRasterizationState@ is not @NULL@ it /must/ be a valid pointer to
+--     a valid 'PipelineRasterizationStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06642# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'
+--     handle
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06643# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass'
+--     handle
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06644# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     @stageCount@ /must/ be greater than @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06645# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     is non-zero, if @flags@ includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',
+--     any libraries /must/ have also been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes more than one library, and any library was created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',
+--     all libraries /must/ have also been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647# If
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@
+--     includes at least one library,
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     is non-zero, and any library was created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',
+--     @flags@ /must/ include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-07826# If the pipeline
+--     includes a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,
+--     and there are no libraries included in
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@,
+--     then 'Vulkan.Core10.Handles.PipelineLayout' /must/ be a valid
+--     pipeline layout
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-layout-07827# If 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
+--     <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',
+--     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 with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     then @layout@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+--     with the union of the libraries\' pipeline layouts other than the
+--     inclusion\/exclusion of
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06730# If @flags@ does not
+--     include
+--     '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 with
+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
+--     then @layout@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>
+--     with the union of the libraries\' pipeline layouts
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
+--     is not supported; the pipeline is being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>;
+--     the pipeline does not include a geometry shader; and the value of
+--     'PipelineInputAssemblyStateCreateInfo'::@topology@ is
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',
+--     or
+--     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP',
+--     and either
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state is not enabled or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@
+--     /must/ be
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
+--     is not supported, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and the pipeline includes a geometry shader with either the
+--     @OutputPoints@ or @OutputLineStrip@ execution modes,
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@
+--     /must/ be
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761#
+--     If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>
+--     is not supported, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and the pipeline includes a mesh shader with either the
+--     @OutputPoints@ or @OutputLinesNV@ execution modes,
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@
+--     /must/ be
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06894# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     but not
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     elements of @pStages@ /must/ not have @stage@ set to
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06895# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     but not
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     elements of @pStages@ /must/ not have @stage@ set to a shader stage
+--     which participates in pre-rasterization
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-06896# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     all elements of @pStages@ /must/ have a @stage@ set to a shader
+--     stage which participates in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-stage-06897# If the pipeline
+--     requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and\/or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     any value of @stage@ /must/ not be set in more than one element of
+--     @pStages@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable>
+--     feature is not enabled, there /must/ be no element of the
+--     @pDynamicStates@ member of @pDynamicState@ set to
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07401# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07997# @flags@ /must/ not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',
+--     and if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
+--     is enabled, then the index of the most significant bit in each
+--     element of
+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@
+--     /must/ be less than @pViewportState@::@viewportCount@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731# If the
+--     pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',
+--     and if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
+--     is enabled, then the index of the most significant bit in each
+--     element of
+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@
+--     /must/ be less than @pViewportState@::@scissorCount@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-08711# If @pStages@
+--     includes a fragment shader stage,
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     is not set in 'PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     member of 'PipelineDepthStencilStateCreateInfo' /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-08712# If @pStages@
+--     includes a fragment shader stage,
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     is not set in 'PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the value of
+--     'StencilOpState'::@writeMask@ for both @front@ and @back@ in
+--     'PipelineDepthStencilStateCreateInfo' /must/ be @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-08744# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output state>
+--     or
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,
+--     the pipeline enables
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>,
+--     @rasterizationSamples@ is not dynamic, and the @pNext@ chain
+--     includes a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
+--     structure, @rasterizationSamples@ /must/ be a bit value that is set
+--     in @imageCreateSampleCounts@ (as defined in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
+--     for every element of @depthAttachmentFormat@,
+--     @stencilAttachmentFormat@ and the @pColorAttachmentFormats@ array
+--     which is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08897# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT',
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is specified either in a library or by the inclusion of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     and that state includes a vertex shader stage in @pStages@, the
+--     pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08898# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT',
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is not specified, the pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08899# If @flags@ does not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR',
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is specified either in a library or by the inclusion of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     and that state includes a vertex shader stage in @pStages@, the
+--     pipeline /must/ either define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or include that state in a linked pipeline library
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08900# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'
+--     the pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08901# If @flags@ does not
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR',
+--     the pipeline /must/ either define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     or include that state in a linked pipeline library
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08903# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is specified either in a library or by the inclusion of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',
+--     and that state either includes
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+--     or has @pRasterizationState->rasterizerDiscardEnable@ set to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08904# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is not specified, the pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08906# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is specified either in a library or by the inclusion of
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',
+--     and that state either includes
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'
+--     or has @pRasterizationState->rasterizerDiscardEnable@ set to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', the pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-08907# If
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@
+--     includes
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>
+--     is not specified, the pipeline /must/ define
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-09043# If
+--     @pDynamicState->pDynamicStates@ does not include
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     @colorWriteMask@ member of the corresponding element of
+--     @pColorBlendState->pAttachments@ /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     /must/ be @0@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@, and @rasterizationSamples@ is not dynamic,
+--     'PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ /must/
+--     be @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@, and @blendEnable@ is not dynamic, the @blendEnable@
+--     member of each element of @pColorBlendState->pAttachments@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@, and @pDynamicState->pDynamicStates@ does not include
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR',
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@width@
+--     /must/ be @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@, and @pDynamicState->pDynamicStates@ does not include
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR',
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@height@
+--     /must/ be @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output pre-rasterization shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@, the last
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
+--     /must/ not statically use a variable with the
+--     @PrimitiveShadingRateKHR@ built-in
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@
+--     /must/ be @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     is not @0@, the fragment shader /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @subpass@ includes an external format resolve attachment, and
+--     @rasterizationSamples@ is not dynamic,,
+--     'PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ /must/
+--     be 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @subpass@ includes an external format resolve attachment, and
+--     @blendEnable@ is not dynamic, the @blendEnable@ member of each
+--     element of @pColorBlendState->pAttachments@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @subpass@ includes an external format resolve attachment, and
+--     @pDynamicState->pDynamicStates@ does not include
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR',
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@width@
+--     /must/ be @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @subpass@ includes an external format resolve attachment, and
+--     @pDynamicState->pDynamicStates@ does not include
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR',
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@height@
+--     /must/ be @1@
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is enabled, the pipeline requires
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output pre-rasterization shader state>
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,
+--     @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and
+--     @subpass@ includes an external format resolve attachment, the last
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stage>
+--     /must/ not statically use a variable with the
+--     @PrimitiveShadingRateKHR@ built-in
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pNext-pNext# Each @pNext@ member
+--     of any structure (including this one) in the @pNext@ chain /must/ be
+--     either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',
+--     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
+--     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',
+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',
+--     'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',
+--     or
+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT'
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-sType-unique# The @sType@ value
+--     of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-parameter# @flags@ /must/
+--     be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter# If
+--     @pDynamicState@ is not @NULL@, @pDynamicState@ /must/ be a valid
+--     pointer to a valid 'PipelineDynamicStateCreateInfo' structure
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-commonparent# Each of
+--     @basePipelineHandle@, @layout@, and @renderPass@ that are valid
+--     handles of non-ignored parameters /must/ have been created,
+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
+-- 'Vulkan.Core10.Handles.Pipeline', 'PipelineColorBlendStateCreateInfo',
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',
+-- 'PipelineDepthStencilStateCreateInfo', 'PipelineDynamicStateCreateInfo',
+-- 'PipelineInputAssemblyStateCreateInfo',
+-- 'Vulkan.Core10.Handles.PipelineLayout',
+-- 'PipelineMultisampleStateCreateInfo',
+-- 'PipelineRasterizationStateCreateInfo', 'PipelineShaderStageCreateInfo',
+-- 'PipelineTessellationStateCreateInfo',
+-- 'PipelineVertexInputStateCreateInfo', 'PipelineViewportStateCreateInfo',
+-- 'Vulkan.Core10.Handles.RenderPass',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createGraphicsPipelines'
+data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+    -- specifying how the pipeline will be generated.
+    flags :: PipelineCreateFlags
+  , -- | @stageCount@ is the number of entries in the @pStages@ array.
+    stageCount :: Word32
+  , -- | @pStages@ is a pointer to an array of @stageCount@
+    -- 'PipelineShaderStageCreateInfo' structures describing the set of the
+    -- shader stages to be included in the graphics pipeline.
+    stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
+  , -- | @pVertexInputState@ is a pointer to a
+    -- 'PipelineVertexInputStateCreateInfo' structure. It is ignored if the
+    -- pipeline includes a mesh shader stage. It /can/ be @NULL@ if the
+    -- pipeline is created with the
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+    -- dynamic state set.
+    vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)
+  , -- | @pInputAssemblyState@ is a pointer to a
+    -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input
+    -- assembly behavior for vertex shading, as described in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>.
+    -- If the @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/
+    -- be @NULL@ if the pipeline is created with both
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE',
+    -- and 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+    -- dynamic states set and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+    -- is 'Vulkan.Core10.FundamentalTypes.TRUE'. It is ignored if the pipeline
+    -- includes a mesh shader stage.
+    inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo
+  , -- | @pTessellationState@ is a pointer to a
+    -- 'PipelineTessellationStateCreateInfo' structure defining tessellation
+    -- state used by tessellation shaders. It /can/ be @NULL@ if the pipeline
+    -- is created with the
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+    -- dynamic state set.
+    tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)
+  , -- | @pViewportState@ is a pointer to a 'PipelineViewportStateCreateInfo'
+    -- structure defining viewport state used when rasterization is enabled. If
+    -- the @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be
+    -- @NULL@ if the pipeline is created with both
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',
+    -- and 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
+    -- dynamic states set.
+    viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo)
+  , -- | @pRasterizationState@ is a pointer to a
+    -- 'PipelineRasterizationStateCreateInfo' structure defining rasterization
+    -- state. If the @VK_EXT_extended_dynamic_state3@ extension is enabled, it
+    -- /can/ be @NULL@ if the pipeline is created with all of
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+    -- states set.
+    rasterizationState :: Maybe (SomeStruct PipelineRasterizationStateCreateInfo)
+  , -- | @pMultisampleState@ is a pointer to a
+    -- 'PipelineMultisampleStateCreateInfo' structure defining multisample
+    -- state used when rasterization is enabled. If the
+    -- @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be
+    -- @NULL@ if the pipeline is created with all of
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', and
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+    -- dynamic states set, and either
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+    -- is disabled on the device or
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
+    -- is set, in which case
+    -- 'PipelineMultisampleStateCreateInfo'::@sampleShadingEnable@ is assumed
+    -- to be 'Vulkan.Core10.FundamentalTypes.FALSE'.
+    multisampleState :: Maybe (SomeStruct PipelineMultisampleStateCreateInfo)
+  , -- | @pDepthStencilState@ is a pointer to a
+    -- 'PipelineDepthStencilStateCreateInfo' structure defining depth\/stencil
+    -- state used when rasterization is enabled for depth or stencil
+    -- attachments accessed during rendering. If the
+    -- @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be
+    -- @NULL@ if the pipeline is created with all of
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', and
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' dynamic
+    -- states set.
+    depthStencilState :: Maybe PipelineDepthStencilStateCreateInfo
+  , -- | @pColorBlendState@ is a pointer to a 'PipelineColorBlendStateCreateInfo'
+    -- structure defining color blend state used when rasterization is enabled
+    -- for any color attachments accessed during rendering. If the
+    -- @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be
+    -- @NULL@ if the pipeline is created with all of
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+    -- and 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+    -- dynamic states set.
+    colorBlendState :: Maybe (SomeStruct PipelineColorBlendStateCreateInfo)
+  , -- | @pDynamicState@ is a pointer to a 'PipelineDynamicStateCreateInfo'
+    -- structure defining which properties of the pipeline state object are
+    -- dynamic and /can/ be changed independently of the pipeline state. This
+    -- /can/ be @NULL@, which means no state in the pipeline is considered
+    -- dynamic.
+    dynamicState :: Maybe PipelineDynamicStateCreateInfo
+  , -- | @layout@ is the description of binding locations used by both the
+    -- pipeline and descriptor sets used with the pipeline.
+    layout :: PipelineLayout
+  , -- | @renderPass@ is a handle to a render pass object describing the
+    -- environment in which the pipeline will be used. The pipeline /must/ only
+    -- be used with a render pass instance compatible with the one provided.
+    -- See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>
+    -- for more information.
+    renderPass :: RenderPass
+  , -- | @subpass@ is the index of the subpass in the render pass where this
+    -- pipeline will be used.
+    subpass :: Word32
+  , -- | @basePipelineHandle@ is a pipeline to derive from.
+    basePipelineHandle :: Pipeline
+  , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use
+    -- as a pipeline to derive from.
+    basePipelineIndex :: Int32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GraphicsPipelineCreateInfo (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (GraphicsPipelineCreateInfo es)
+
+instance Extensible GraphicsPipelineCreateInfo where
+  extensibleTypeName = "GraphicsPipelineCreateInfo"
+  setNext GraphicsPipelineCreateInfo{..} next' = GraphicsPipelineCreateInfo{next = next', ..}
+  getNext GraphicsPipelineCreateInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends GraphicsPipelineCreateInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @GraphicsPipelineLibraryCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f
+    | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f
+    | Just Refl <- eqT @e @PipelineRenderingCreateInfo = Just f
+    | Just Refl <- eqT @e @PipelineFragmentShadingRateEnumStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineFragmentShadingRateStateCreateInfoKHR = Just f
+    | Just Refl <- eqT @e @PipelineLibraryCreateInfoKHR = Just f
+    | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f
+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
+    | Just Refl <- eqT @e @PipelineRepresentativeFragmentTestStateCreateInfoNV = Just f
+    | Just Refl <- eqT @e @ExternalFormatANDROID = Just f
+    | Just Refl <- eqT @e @PipelineDiscardRectangleStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @GraphicsPipelineShaderGroupsCreateInfoNV = Just f
+    | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss GraphicsPipelineCreateInfo es
diff --git a/src/Vulkan/Core10/Query.hs b/src/Vulkan/Core10/Query.hs
--- a/src/Vulkan/Core10/Query.hs
+++ b/src/Vulkan/Core10/Query.hs
@@ -288,10 +288,13 @@
 -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
 -- is set, results for all queries in @queryPool@ identified by
 -- @firstQuery@ and @queryCount@ are copied to @pData@, along with an extra
--- availability value written directly after the results of each query and
--- interpreted as an unsigned integer. A value of zero indicates that the
--- results are not yet available, otherwise the query is complete and
--- results are available.
+-- availability or status value written directly after the results of each
+-- query and interpreted as an unsigned integer. A value of zero indicates
+-- that the results are not yet available, otherwise the query is complete
+-- and results are available. The size of the availability or status values
+-- is 64 bits if
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set in
+-- @flags@. Otherwise, it is 32 bits.
 --
 -- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries
 -- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to
@@ -306,6 +309,14 @@
 -- defines specific meaning for values returned here, though
 -- implementations are free to return other values.
 --
+-- Note
+--
+-- If
+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
+-- or @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, the layout of data in
+-- the buffer is a /(result,availability)/ or /(result,status)/ pair for
+-- each query returned, and @stride@ is the stride between each pair.
+--
 -- Results for any available query written by this command are final and
 -- represent the final result of the query. If
 -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is
@@ -314,9 +325,9 @@
 -- Otherwise, any result written by this command is undefined.
 --
 -- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,
--- results and availability or status values for all queries are written as
--- an array of 64-bit values. If the @queryPool@ was created with
--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
+-- results and, if returned, availability or status values for all queries
+-- are written as an array of 64-bit values. If the @queryPool@ was created
+-- with 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
 -- results for each query are written as an array of the type indicated by
 -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@
 -- for the counter being queried. Otherwise, results and availability or
@@ -398,6 +409,12 @@
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set
 --     in @flags@ then @pData@ and @stride@ /must/ be multiples of @8@
 --
+-- -   #VUID-vkGetQueryPoolResults-stride-08993# If
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
+--     is set, @stride@ /must/ be large enough to contain the unsigned
+--     integer representing availability or status in addition to the query
+--     result.
+--
 -- -   #VUID-vkGetQueryPoolResults-queryType-03229# If the @queryType@ used
 --     to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
@@ -407,7 +424,7 @@
 -- -   #VUID-vkGetQueryPoolResults-queryType-04519# If the @queryType@ used
 --     to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
---     then @stride@ /must/ be large enough to contain
+--     then @stride@ /must/ be large enough to contain the
 --     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@counterIndexCount@
 --     used to create @queryPool@ times the size of
 --     'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterResultKHR'
@@ -431,7 +448,8 @@
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
 --     @flags@ /must/ not contain
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',
---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'
+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@,
+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT',
 --     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'
 --
 -- -   #VUID-vkGetQueryPoolResults-queryType-03231# If the @queryType@ used
diff --git a/src/Vulkan/Core10/Queue.hs b/src/Vulkan/Core10/Queue.hs
--- a/src/Vulkan/Core10/Queue.hs
+++ b/src/Vulkan/Core10/Queue.hs
@@ -71,6 +71,8 @@
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core10.Handles (Fence(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySubmissionPresentIdNV)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)
@@ -280,8 +282,9 @@
 --     a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
 --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY' /must/
 --     reference a semaphore signal operation that has been submitted for
---     execution and any semaphore signal operations on which it depends
---     (if any) /must/ have also been submitted for execution
+--     execution and any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
+--     on which it depends /must/ have also been submitted for execution
 --
 -- -   #VUID-vkQueueSubmit-pCommandBuffers-00070# Each element of the
 --     @pCommandBuffers@ member of each element of @pSubmits@ /must/ be in
@@ -385,6 +388,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- == Return Codes
@@ -488,6 +492,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- == Return Codes
@@ -665,7 +670,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature is not enabled, @pWaitDstStageMask@ /must/ not be @0@
 --
--- -   #VUID-VkSubmitInfo-rayTracingPipeline-07949# If neither the
+-- -   #VUID-VkSubmitInfo-pWaitDstStageMask-07949# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -801,6 +806,8 @@
 --     'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC',
 --     'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo',
+--     'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
+--     'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV',
 --     'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',
 --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo',
@@ -879,6 +886,8 @@
   getNext SubmitInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @LatencySubmissionPresentIdNV = Just f
+    | Just Refl <- eqT @e @FrameBoundaryEXT = Just f
     | Just Refl <- eqT @e @AmigoProfilingSubmitInfoSEC = Just f
     | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f
     | Just Refl <- eqT @e @TimelineSemaphoreSubmitInfo = Just f
diff --git a/src/Vulkan/Core10/Sampler.hs b/src/Vulkan/Core10/Sampler.hs
--- a/src/Vulkan/Core10/Sampler.hs
+++ b/src/Vulkan/Core10/Sampler.hs
@@ -79,8 +79,10 @@
 import Vulkan.Core10.Handles (Sampler)
 import Vulkan.Core10.Handles (Sampler(..))
 import Vulkan.Core10.Enums.SamplerAddressMode (SamplerAddressMode)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (SamplerBlockMatchWindowCreateInfoQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (SamplerBorderColorComponentMappingCreateInfoEXT)
 import Vulkan.Core10.Enums.SamplerCreateFlagBits (SamplerCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (SamplerCubicWeightsCreateInfoQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT)
 import Vulkan.Core10.Enums.SamplerMipmapMode (SamplerMipmapMode)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (SamplerReductionModeCreateInfo)
@@ -430,6 +432,15 @@
 --     @minFilter@ is 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT',
 --     @anisotropyEnable@ /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
 --
+-- -   #VUID-VkSamplerCreateInfo-magFilter-07911# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and either @magFilter@ or @minFilter@ is
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', the @reductionMode@
+--     member of
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'
+--     /must/ be
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE'
+--
 -- -   #VUID-VkSamplerCreateInfo-compareEnable-01423# If @compareEnable@ is
 --     'Vulkan.Core10.FundamentalTypes.TRUE', the @reductionMode@ member of
 --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'
@@ -565,7 +576,9 @@
 --     structure (including this one) in the @pNext@ chain /must/ be either
 --     @NULL@ or a pointer to a valid instance of
 --     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT',
+--     'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM',
 --     'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM',
 --     'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo',
 --     or
@@ -642,9 +655,9 @@
     -- specifying the addressing mode for W coordinates outside [0,1).
     addressModeW :: SamplerAddressMode
   , -- | #samplers-mipLodBias# @mipLodBias@ is the bias to be added to mipmap LOD
-    -- (level-of-detail) calculation and bias provided by image sampling
-    -- functions in SPIR-V, as described in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation Level-of-Detail Operation>
+    -- calculation and bias provided by image sampling functions in SPIR-V, as
+    -- described in the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation LOD Operation>
     -- section.
     mipLodBias :: Float
   , -- | #samplers-maxAnisotropy# @anisotropyEnable@ is
@@ -721,6 +734,8 @@
   getNext SamplerCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @SamplerBlockMatchWindowCreateInfoQCOM = Just f
+    | Just Refl <- eqT @e @SamplerCubicWeightsCreateInfoQCOM = Just f
     | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f
     | Just Refl <- eqT @e @SamplerBorderColorComponentMappingCreateInfoEXT = Just f
     | Just Refl <- eqT @e @SamplerCustomBorderColorCreateInfoEXT = Just f
diff --git a/src/Vulkan/Core10/Shader.hs b/src/Vulkan/Core10/Shader.hs
--- a/src/Vulkan/Core10/Shader.hs
+++ b/src/Vulkan/Core10/Shader.hs
@@ -101,6 +101,16 @@
 -- and
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>.
 --
+-- Note
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+-- feature is enabled, shader module creation can be omitted entirely.
+-- Instead, applications should provide the 'ShaderModuleCreateInfo'
+-- structure directly in to pipeline creation by chaining it to
+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'. This avoids the
+-- overhead of creating and managing an additional object.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkCreateShaderModule-pCreateInfo-06904# If @pCreateInfo@ is
@@ -275,62 +285,64 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkShaderModuleCreateInfo-codeSize-01085# @codeSize@ /must/ be
---     greater than 0
---
--- -   #VUID-VkShaderModuleCreateInfo-pCode-07912# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_glsl_shader VK_NV_glsl_shader>
---     extension is not enabled, @pCode@ /must/ be a pointer to SPIR-V code
---
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01376# If @pCode@ is a pointer
+-- -   #VUID-VkShaderModuleCreateInfo-codeSize-08735# If pCode is a pointer
 --     to SPIR-V code, @codeSize@ /must/ be a multiple of 4
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01377# @pCode@ /must/ point to
---     either valid SPIR-V code, formatted and packed as described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
---     or valid GLSL code which /must/ be written to the
---     @GL_KHR_vulkan_glsl@ extension specification
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08736# If pCode is a pointer to
+--     SPIR-V code, @pCode@ /must/ point to valid SPIR-V code, formatted
+--     and packed as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01378# If @pCode@ is a pointer
---     to SPIR-V code, that code /must/ adhere to the validation rules
---     described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08737# If pCode is a pointer to
+--     SPIR-V code, @pCode@ /must/ adhere to the validation rules described
+--     by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>
 --     section of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
 --     appendix
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01379# If @pCode@ is a pointer
---     to GLSL code, it /must/ be valid GLSL code written to the
---     @GL_KHR_vulkan_glsl@ GLSL extension specification
---
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01089# @pCode@ /must/ declare
---     the @Shader@ capability for SPIR-V code
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08738# If pCode is a pointer to
+--     SPIR-V code, @pCode@ /must/ declare the @Shader@ capability for
+--     SPIR-V code
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01090# @pCode@ /must/ not
---     declare any capability that is not supported by the API, as
---     described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08739# If pCode is a pointer to
+--     SPIR-V code, @pCode@ /must/ not declare any capability that is not
+--     supported by the API, as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>
 --     section of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
 --     appendix
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-01091# If @pCode@ declares any
---     of the capabilities listed in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08740# If pCode is a pointer to
+--     SPIR-V code, and @pCode@ declares any of the capabilities listed in
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>
 --     appendix, one of the corresponding requirements /must/ be satisfied
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-04146# @pCode@ /must/ not
---     declare any SPIR-V extension that is not supported by the API, as
---     described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions Extension>
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08741# If pCode is a pointer to
+--     SPIR-V code, @pCode@ /must/ not declare any SPIR-V extension that is
+--     not supported by the API, as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions Extension>
 --     section of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
 --     appendix
 --
--- -   #VUID-VkShaderModuleCreateInfo-pCode-04147# If @pCode@ declares any
---     of the SPIR-V extensions listed in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-08742# If pCode is a pointer to
+--     SPIR-V code, and @pCode@ declares any of the SPIR-V extensions
+--     listed in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>
 --     appendix, one of the corresponding requirements /must/ be satisfied
+--
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-07912# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_glsl_shader VK_NV_glsl_shader>
+--     extension is not enabled, @pCode@ /must/ be a pointer to SPIR-V code
+--
+-- -   #VUID-VkShaderModuleCreateInfo-pCode-01379# If @pCode@ is a pointer
+--     to GLSL code, it /must/ be valid GLSL code written to the
+--     @GL_KHR_vulkan_glsl@ GLSL extension specification
+--
+-- -   #VUID-VkShaderModuleCreateInfo-codeSize-01085# @codeSize@ /must/ be
+--     greater than 0
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
--- a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
+++ b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
@@ -83,6 +83,7 @@
 import Vulkan.Core10.Handles (Fence(..))
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.Format (Format(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT)
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
@@ -427,20 +428,15 @@
 --     on @queue@, there /must/ be no other queues waiting on the same
 --     semaphore
 --
--- -   #VUID-vkQueueBindSparse-pWaitSemaphores-01117# All elements of the
---     @pWaitSemaphores@ member of all elements of the @pBindInfo@
---     parameter referring to a binary semaphore /must/ be semaphores that
---     are signaled, or have
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
---     previously submitted for execution
---
 -- -   #VUID-vkQueueBindSparse-pWaitSemaphores-03245# All elements of the
 --     @pWaitSemaphores@ member of all elements of @pBindInfo@ created with
 --     a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
 --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY' /must/
 --     reference a semaphore signal operation that has been submitted for
---     execution and any semaphore signal operations on which it depends
---     (if any) /must/ have also been submitted for execution
+--     execution and any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
+--     on which it depends (if any) /must/ have also been submitted for
+--     execution
 --
 -- == Valid Usage (Implicit)
 --
@@ -476,6 +472,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | SPARSE_BINDING                                                                                                        | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- == Return Codes
@@ -685,7 +682,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',
--- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageSubresource2EXT',
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.ImageSubresource2KHR',
 -- 'SparseImageMemoryBind', 'Vulkan.Core10.Image.getImageSubresourceLayout'
 data ImageSubresource = ImageSubresource
   { -- | @aspectMask@ is a
@@ -929,6 +926,9 @@
 --     ('SparseImageFormatProperties'::@imageGranularity.width@) of the
 --     image
 --
+-- -   #VUID-VkSparseImageMemoryBind-extent-09388# @extent.width@ /must/ be
+--     greater than @0@
+--
 -- -   #VUID-VkSparseImageMemoryBind-extent-01108# @extent.width@ /must/
 --     either be a multiple of the sparse image block width of the image,
 --     or else (@extent.width@ + @offset.x@) /must/ equal the width of the
@@ -939,6 +939,9 @@
 --     ('SparseImageFormatProperties'::@imageGranularity.height@) of the
 --     image
 --
+-- -   #VUID-VkSparseImageMemoryBind-extent-09389# @extent.height@ /must/
+--     be greater than @0@
+--
 -- -   #VUID-VkSparseImageMemoryBind-extent-01110# @extent.height@ /must/
 --     either be a multiple of the sparse image block height of the image,
 --     or else (@extent.height@ + @offset.y@) /must/ equal the height of
@@ -949,6 +952,9 @@
 --     ('SparseImageFormatProperties'::@imageGranularity.depth@) of the
 --     image
 --
+-- -   #VUID-VkSparseImageMemoryBind-extent-09390# @extent.depth@ /must/ be
+--     greater than @0@
+--
 -- -   #VUID-VkSparseImageMemoryBind-extent-01112# @extent.depth@ /must/
 --     either be a multiple of the sparse image block depth of the image,
 --     or else (@extent.depth@ + @offset.z@) /must/ equal the depth of the
@@ -1342,8 +1348,8 @@
 -- -   #VUID-VkBindSparseInfo-pNext-pNext# Each @pNext@ member of any
 --     structure (including this one) in the @pNext@ chain /must/ be either
 --     @NULL@ or a pointer to a valid instance of
---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo'
---     or
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo',
+--     'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', or
 --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'
 --
 -- -   #VUID-VkBindSparseInfo-sType-unique# The @sType@ value of each
@@ -1420,6 +1426,7 @@
   getNext BindSparseInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BindSparseInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @FrameBoundaryEXT = Just f
     | Just Refl <- eqT @e @TimelineSemaphoreSubmitInfo = Just f
     | Just Refl <- eqT @e @DeviceGroupBindSparseInfo = Just f
     | otherwise = Nothing
diff --git a/src/Vulkan/Core11/Enums/ChromaLocation.hs b/src/Vulkan/Core11/Enums/ChromaLocation.hs
--- a/src/Vulkan/Core11/Enums/ChromaLocation.hs
+++ b/src/Vulkan/Core11/Enums/ChromaLocation.hs
@@ -22,7 +22,9 @@
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',
 -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'
 newtype ChromaLocation = ChromaLocation Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
diff --git a/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs
@@ -36,6 +36,10 @@
 -- handle type
 -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'.
 -- Implementations /must/ not report
+-- 'EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT' for buffers with external
+-- handle type
+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'.
+-- Implementations /must/ not report
 -- 'EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT' for images or buffers with
 -- external handle type
 -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT',
diff --git a/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs
@@ -8,6 +8,7 @@
                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
+                                                                                               , EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX
                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
                                                                                                , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
@@ -69,6 +70,8 @@
 -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV'                 | No restriction                                                                                             | No restriction                                                                                             |
 -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'               | No restriction                                                                                             | No restriction                                                                                             |
+-- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
 --
 -- External memory handle types compatibility
 --
@@ -165,6 +168,13 @@
 -- Direct3D resource.
 pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = ExternalMemoryHandleTypeFlagBits 0x00000040
 
+-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' specifies a
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.Screen_buffer'
+-- object defined by the QNX SDP. See
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-qnx-screen-buffer QNX Screen Buffer>
+-- for more details of this handle type.
+pattern EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = ExternalMemoryHandleTypeFlagBits 0x00004000
+
 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV' is a handle to an
 -- allocation accessible by remote devices. It owns a reference to the
 -- underlying memory resource represented by its Vulkan memory object.
@@ -235,6 +245,10 @@
   ,
     ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
     , "D3D12_RESOURCE_BIT"
+    )
+  ,
+    ( EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX
+    , "SCREEN_BUFFER_BIT_QNX"
     )
   ,
     ( EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
diff --git a/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs b/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs
--- a/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs
+++ b/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs
@@ -85,7 +85,8 @@
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',
 -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'
 newtype SamplerYcbcrModelConversion = SamplerYcbcrModelConversion Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
diff --git a/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs b/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs
--- a/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs
+++ b/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs
@@ -36,7 +36,8 @@
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',
 -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',
 -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'
 newtype SamplerYcbcrRange = SamplerYcbcrRange Int32
   deriving newtype (Eq, Ord, Storable, Zero)
 
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs
@@ -346,6 +346,15 @@
 --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'
 --     bit set
 --
+-- -   #VUID-VkBindBufferMemoryInfo-bufferDeviceAddressCaptureReplay-09200#
+--     If the
+--     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures'::@bufferDeviceAddressCaptureReplay@
+--     feature is enabled and @buffer@ was created with the
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     bit set, @memory@ /must/ have been allocated with the
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     bit set
+--
 -- -   #VUID-VkBindBufferMemoryInfo-buffer-06408# If @buffer@ was created
 --     with
 --     'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA'
@@ -355,15 +364,19 @@
 --     chained to 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@pNext@
 --
 -- -   #VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112# If
---     the
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'
---     ::@descriptorBufferCaptureReplay@ feature is enabled and @buffer@
---     was created with the
+--     the @buffer@ was created with the
 --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
 --     bit set, @memory@ /must/ have been allocated with the
 --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'
 --     bit set
 --
+-- -   #VUID-VkBindBufferMemoryInfo-buffer-09201# If the @buffer@ was
+--     created with the
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
+--     bit set, @memory@ /must/ have been allocated with the
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     bit set
+--
 -- -   #VUID-VkBindBufferMemoryInfo-pNext-01605# If the @pNext@ chain
 --     includes a
 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo'
@@ -583,13 +596,17 @@
 --     when @image@ was created
 --
 -- -   #VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113# If
---     the
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT'
---     ::@descriptorBufferCaptureReplay@ feature is enabled and @image@ was
---     created with the
+--     the @image@ was created with the
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
 --     bit set, @memory@ /must/ have been allocated with the
 --     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'
+--     bit set
+--
+-- -   #VUID-VkBindImageMemoryInfo-image-09202# If the @image@ was created
+--     with the
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
+--     bit set, @memory@ /must/ have been allocated with the
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
 --     bit set
 --
 -- -   #VUID-VkBindImageMemoryInfo-pNext-01615# If the @pNext@ chain does
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs
@@ -177,7 +177,7 @@
 --
 -- -   #VUID-VkMemoryDedicatedAllocateInfo-image-02964# If @image@ is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE' and the memory is not an
---     imported Android Hardware Buffer,
+--     imported Android Hardware Buffer or an imported QNX Screen buffer ,
 --     'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@ /must/
 --     equal the
 --     'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@size@ of the
@@ -191,7 +191,7 @@
 --
 -- -   #VUID-VkMemoryDedicatedAllocateInfo-buffer-02965# If @buffer@ is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE' and the memory is not an
---     imported Android Hardware Buffer,
+--     imported Android Hardware Buffer or an imported QNX Screen buffer ,
 --     'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@ /must/
 --     equal the
 --     'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@size@ of the
@@ -216,7 +216,7 @@
 --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT',
 --     and the external handle was created by the Vulkan API, then the
 --     memory being imported /must/ also be a dedicated image allocation
---     and @image@ must be identical to the image associated with the
+--     and @image@ /must/ be identical to the image associated with the
 --     imported memory
 --
 -- -   #VUID-VkMemoryDedicatedAllocateInfo-buffer-01877# If @buffer@ is not
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs
@@ -303,6 +303,10 @@
 --     @descriptorUpdateTemplate@ /must/ be a valid
 --     'Vulkan.Core11.Handles.DescriptorUpdateTemplate' handle
 --
+-- -   #VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parent#
+--     @descriptorSet@ /must/ have been created, allocated, or retrieved
+--     from @device@
+--
 -- -   #VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent#
 --     @descriptorUpdateTemplate@ /must/ have been created, allocated, or
 --     retrieved from @device@
@@ -326,49 +330,49 @@
 -- > {
 -- >     // binding to a single image descriptor
 -- >     {
--- >         0,                                           // binding
--- >         0,                                           // dstArrayElement
--- >         1,                                           // descriptorCount
--- >         VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,   // descriptorType
--- >         offsetof(AppDataStructure, imageInfo),       // offset
--- >         0                                            // stride is not required if descriptorCount is 1
+-- >         .binding = 0,
+-- >         .dstArrayElement = 0,
+-- >         .descriptorCount = 1,
+-- >         .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+-- >         .offset = offsetof(AppDataStructure, imageInfo),
+-- >         .stride = 0         // stride not required if descriptorCount is 1
 -- >     },
 -- >
 -- >     // binding to an array of buffer descriptors
 -- >     {
--- >         1,                                           // binding
--- >         0,                                           // dstArrayElement
--- >         3,                                           // descriptorCount
--- >         VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,           // descriptorType
--- >         offsetof(AppDataStructure, bufferInfoArray), // offset
--- >         sizeof(VkDescriptorBufferInfo)               // stride, descriptor buffer infos are compact
+-- >         .binding = 1,
+-- >         .dstArrayElement = 0,
+-- >         .descriptorCount = 3,
+-- >         .descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
+-- >         .offset = offsetof(AppDataStructure, bufferInfoArray),
+-- >         .stride = sizeof(VkDescriptorBufferInfo)    // descriptor buffer infos are compact
 -- >     },
 -- >
 -- >     // binding to an array of buffer views
 -- >     {
--- >         2,                                           // binding
--- >         0,                                           // dstArrayElement
--- >         2,                                           // descriptorCount
--- >         VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,     // descriptorType
--- >         offsetof(AppDataStructure, bufferView) +
--- >           offsetof(AppBufferView, bufferView),       // offset
--- >         sizeof(AppBufferView)                        // stride, bufferViews do not have to be compact
+-- >         .binding = 2,
+-- >         .dstArrayElement = 0,
+-- >         .descriptorCount = 2,
+-- >         .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
+-- >         .offset = offsetof(AppDataStructure, bufferView) +
+-- >                   offsetof(AppBufferView, bufferView),
+-- >         .stride = sizeof(AppBufferView)             // bufferViews do not have to be compact
 -- >     },
 -- > };
 -- >
 -- > // create a descriptor update template for descriptor set updates
 -- > const VkDescriptorUpdateTemplateCreateInfo createInfo =
 -- > {
--- >     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,  // sType
--- >     NULL,                                                      // pNext
--- >     0,                                                         // flags
--- >     3,                                                         // descriptorUpdateEntryCount
--- >     descriptorUpdateTemplateEntries,                           // pDescriptorUpdateEntries
--- >     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,         // templateType
--- >     myLayout,                                                  // descriptorSetLayout
--- >     0,                                                         // pipelineBindPoint, ignored by given templateType
--- >     0,                                                         // pipelineLayout, ignored by given templateType
--- >     0,                                                         // set, ignored by given templateType
+-- >     .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
+-- >     .pNext = NULL,
+-- >     .flags = 0,
+-- >     .descriptorUpdateEntryCount = 3,
+-- >     .pDescriptorUpdateEntries = descriptorUpdateTemplateEntries,
+-- >     .templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
+-- >     .descriptorSetLayout = myLayout,
+-- >     .pipelineBindPoint = 0,     // ignored by given templateType
+-- >     .pipelineLayout = 0,        // ignored by given templateType
+-- >     .set = 0,                   // ignored by given templateType
 -- > };
 -- >
 -- > VkDescriptorUpdateTemplate myDescriptorUpdateTemplate;
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
@@ -321,6 +321,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdDispatchBase-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdDispatchBase-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -346,6 +356,33 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdDispatchBase-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDispatchBase-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDispatchBase-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdDispatchBase-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -387,11 +424,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdDispatchBase-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -401,12 +436,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchBase-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -418,12 +451,10 @@
 -- -   #VUID-vkCmdDispatchBase-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -584,34 +615,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdDispatchBase-commandBuffer-08614# If @commandBuffer@ is
+-- -   #VUID-vkCmdDispatchBase-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdDispatchBase-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdDispatchBase-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchBase-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdDispatchBase-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -623,18 +645,24 @@
 --
 -- -   #VUID-vkCmdDispatchBase-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdDispatchBase-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-vkCmdDispatchBase-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDispatchBase-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdDispatchBase-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
@@ -735,6 +763,8 @@
 --
 -- -   #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977# If
 --     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -742,12 +772,35 @@
 --
 -- -   #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978# If any
 --     command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDispatchBase-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDispatchBase-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDispatchBase-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>
@@ -1013,10 +1066,14 @@
 -- instance, and the initial device mask when the render pass instance
 -- begins. In addition, commands transitioning to the next subpass in a
 -- render pass instance and commands ending the render pass instance, and,
--- accordingly render pass attachment load, store, and resolve operations
--- and subpass dependencies corresponding to the render pass instance, are
--- executed on the physical devices included in the device mask provided
--- here.
+-- accordingly render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>,
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve>
+-- operations and subpass dependencies corresponding to the render pass
+-- instance, are executed on the physical devices included in the device
+-- mask provided here.
 --
 -- If @deviceRenderAreaCount@ is not zero, then the elements of
 -- @pDeviceRenderAreas@ override the value of
@@ -1067,6 +1124,14 @@
 --     @offset.y@ and @extent.height@ members of any element of
 --     @pDeviceRenderAreas@ /must/ be less than or equal to
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>
+--
+-- -   #VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998# The
+--     @extent.width@ member of any element of @pDeviceRenderAreas@ /must/
+--     be greater than 0
+--
+-- -   #VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999# The
+--     @extent.height@ member of any element of @pDeviceRenderAreas@ /must/
+--     be greater than 0
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs
@@ -20,8 +20,10 @@
 import Vulkan.Internal.Utils (traceAroundEvent)
 import Control.Monad (unless)
 import Control.Monad.IO.Class (liftIO)
+import Data.Typeable (eqT)
 import Foreign.Marshal.Alloc (allocaBytes)
 import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
@@ -33,6 +35,7 @@
 import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
+import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -50,20 +53,31 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
 import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)
 import Vulkan.CStruct.Utils (pokeFixedLengthByteString)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.BufferCreateFlagBits (BufferCreateFlags)
 import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
+import Vulkan.CStruct.Extends (Chain)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core11.Enums.ExternalMemoryFeatureFlagBits (ExternalMemoryFeatureFlags)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlags)
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceExternalBufferProperties))
 import Vulkan.Core10.APIConstants (LUID_SIZE)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
 import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
 import Vulkan.Core10.Handles (PhysicalDevice_T)
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.APIConstants (UUID_SIZE)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES))
@@ -83,7 +97,7 @@
   unsafe
 #endif
   "dynamic" mkVkGetPhysicalDeviceExternalBufferProperties
-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceExternalBufferInfo -> Ptr ExternalBufferProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceExternalBufferInfo -> Ptr ExternalBufferProperties -> IO ()
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceExternalBufferInfo) -> Ptr ExternalBufferProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceExternalBufferInfo) -> Ptr ExternalBufferProperties -> IO ()
 
 -- | vkGetPhysicalDeviceExternalBufferProperties - Query external handle
 -- types supported by buffers
@@ -95,8 +109,10 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
 -- 'ExternalBufferProperties', 'Vulkan.Core10.Handles.PhysicalDevice',
 -- 'PhysicalDeviceExternalBufferInfo'
-getPhysicalDeviceExternalBufferProperties :: forall io
-                                           . (MonadIO io)
+getPhysicalDeviceExternalBufferProperties :: forall a io
+                                           . ( Extendss PhysicalDeviceExternalBufferInfo a
+                                             , PokeChain a
+                                             , MonadIO io )
                                           => -- | @physicalDevice@ is the physical device from which to query the buffer
                                              -- capabilities.
                                              --
@@ -111,7 +127,7 @@
                                              -- #VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter#
                                              -- @pExternalBufferInfo@ /must/ be a valid pointer to a valid
                                              -- 'PhysicalDeviceExternalBufferInfo' structure
-                                             PhysicalDeviceExternalBufferInfo
+                                             (PhysicalDeviceExternalBufferInfo a)
                                           -> io (ExternalBufferProperties)
 getPhysicalDeviceExternalBufferProperties physicalDevice
                                             externalBufferInfo = liftIO . evalContT $ do
@@ -123,7 +139,7 @@
   pPExternalBufferProperties <- ContT (withZeroCStruct @ExternalBufferProperties)
   lift $ traceAroundEvent "vkGetPhysicalDeviceExternalBufferProperties" (vkGetPhysicalDeviceExternalBufferProperties'
                                                                            (physicalDeviceHandle (physicalDevice))
-                                                                           pExternalBufferInfo
+                                                                           (forgetExtensions pExternalBufferInfo)
                                                                            (pPExternalBufferProperties))
   pExternalBufferProperties <- lift $ peekCStruct @ExternalBufferProperties pPExternalBufferProperties
   pure $ (pExternalBufferProperties)
@@ -341,8 +357,46 @@
 -- | VkPhysicalDeviceExternalBufferInfo - Structure specifying buffer
 -- creation parameters
 --
+-- = Description
+--
+-- Only usage flags representable in
+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' are
+-- returned in this structure’s @usage@. If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain, all usage flags of the buffer
+-- are returned in
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@.
+--
 -- == Valid Usage (Implicit)
 --
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO'
+--
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext# @pNext@ /must/
+--     be @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+--
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-sType-unique# The @sType@
+--     value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter# @flags@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter# @usage@
+--     /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
+--
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask#
+--     @usage@ /must/ not be @0@
+--
+-- -   #VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter#
+--     @handleType@ /must/ be a valid
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'
+--     value
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,
@@ -352,79 +406,75 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'getPhysicalDeviceExternalBufferProperties',
 -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferPropertiesKHR'
-data PhysicalDeviceExternalBufferInfo = PhysicalDeviceExternalBufferInfo
-  { -- | @flags@ is a bitmask of
+data PhysicalDeviceExternalBufferInfo (es :: [Type]) = PhysicalDeviceExternalBufferInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
     -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits'
     -- describing additional parameters of the buffer, corresponding to
     -- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@.
-    --
-    -- #VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter# @flags@ /must/
-    -- be a valid combination of
-    -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits' values
     flags :: BufferCreateFlags
   , -- | @usage@ is a bitmask of
     -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' describing
     -- the intended usage of the buffer, corresponding to
     -- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@.
-    --
-    -- #VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter# @usage@ /must/
-    -- be a valid combination of
-    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values
-    --
-    -- #VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask# @usage@
-    -- /must/ not be @0@
     usage :: BufferUsageFlags
   , -- | @handleType@ is a
     -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'
     -- value specifying the memory handle type that will be used with the
     -- memory associated with the buffer.
-    --
-    -- #VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter#
-    -- @handleType@ /must/ be a valid
-    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'
-    -- value
     handleType :: ExternalMemoryHandleTypeFlagBits
   }
-  deriving (Typeable, Eq)
+  deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceExternalBufferInfo)
+deriving instance Generic (PhysicalDeviceExternalBufferInfo (es :: [Type]))
 #endif
-deriving instance Show PhysicalDeviceExternalBufferInfo
+deriving instance Show (Chain es) => Show (PhysicalDeviceExternalBufferInfo es)
 
-instance ToCStruct PhysicalDeviceExternalBufferInfo where
+instance Extensible PhysicalDeviceExternalBufferInfo where
+  extensibleTypeName = "PhysicalDeviceExternalBufferInfo"
+  setNext PhysicalDeviceExternalBufferInfo{..} next' = PhysicalDeviceExternalBufferInfo{next = next', ..}
+  getNext PhysicalDeviceExternalBufferInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceExternalBufferInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PhysicalDeviceExternalBufferInfo es
+         , PokeChain es ) => ToCStruct (PhysicalDeviceExternalBufferInfo es) where
   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceExternalBufferInfo{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr BufferCreateFlags)) (flags)
-    poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (usage)
-    poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)
-    f
+  pokeCStruct p PhysicalDeviceExternalBufferInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr BufferCreateFlags)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (usage)
+    lift $ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)
+    lift $ f
   cStructSize = 32
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero)
+    lift $ f
 
-instance FromCStruct PhysicalDeviceExternalBufferInfo where
+instance ( Extendss PhysicalDeviceExternalBufferInfo es
+         , PeekChain es ) => FromCStruct (PhysicalDeviceExternalBufferInfo es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     flags <- peek @BufferCreateFlags ((p `plusPtr` 16 :: Ptr BufferCreateFlags))
     usage <- peek @BufferUsageFlags ((p `plusPtr` 20 :: Ptr BufferUsageFlags))
     handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits))
     pure $ PhysicalDeviceExternalBufferInfo
-             flags usage handleType
-
-instance Storable PhysicalDeviceExternalBufferInfo where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
+             next flags usage handleType
 
-instance Zero PhysicalDeviceExternalBufferInfo where
+instance es ~ '[] => Zero (PhysicalDeviceExternalBufferInfo es) where
   zero = PhysicalDeviceExternalBufferInfo
+           ()
            zero
            zero
            zero
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot
@@ -11,7 +11,10 @@
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
-
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
 data ExternalBufferProperties
 
 instance ToCStruct ExternalBufferProperties
@@ -36,12 +39,15 @@
 instance FromCStruct ExternalMemoryProperties
 
 
-data PhysicalDeviceExternalBufferInfo
+type role PhysicalDeviceExternalBufferInfo nominal
+data PhysicalDeviceExternalBufferInfo (es :: [Type])
 
-instance ToCStruct PhysicalDeviceExternalBufferInfo
-instance Show PhysicalDeviceExternalBufferInfo
+instance ( Extendss PhysicalDeviceExternalBufferInfo es
+         , PokeChain es ) => ToCStruct (PhysicalDeviceExternalBufferInfo es)
+instance Show (Chain es) => Show (PhysicalDeviceExternalBufferInfo es)
 
-instance FromCStruct PhysicalDeviceExternalBufferInfo
+instance ( Extendss PhysicalDeviceExternalBufferInfo es
+         , PeekChain es ) => FromCStruct (PhysicalDeviceExternalBufferInfo es)
 
 
 data PhysicalDeviceExternalImageFormatInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs
@@ -347,6 +347,11 @@
 --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
 --     external memory handle type, then @image@ /must/ be bound to memory
 --
+-- -   #VUID-VkImageMemoryRequirementsInfo2-image-08961# If @image@ was
+--     created with the
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'
+--     external memory handle type, then @image@ /must/ be bound to memory
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkImageMemoryRequirementsInfo2-sType-sType# @sType@ /must/ be
@@ -505,7 +510,8 @@
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',
 -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV',
 -- 'getImageMemoryRequirements2',
--- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR'
+-- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR',
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV'
 data MemoryRequirements2 (es :: [Type]) = MemoryRequirements2
   { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
     next :: Chain es
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
@@ -73,6 +73,7 @@
 import Vulkan.Core10.Enums.Format (Format(..))
 import Vulkan.Core10.DeviceInitialization (FormatProperties)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageCopyDevicePerformanceQueryEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT)
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
@@ -103,6 +104,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT)
@@ -116,15 +118,20 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (PhysicalDeviceDepthBiasControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT)
@@ -134,7 +141,9 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
@@ -145,14 +154,20 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpacePropertiesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolveFeaturesANDROID)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolvePropertiesANDROID)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT)
 import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties)
@@ -169,15 +184,20 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (PhysicalDeviceFrameBoundaryFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2PropertiesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)
@@ -190,6 +210,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
+import {-# SOURCE #-} Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)
@@ -197,6 +218,8 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5FeaturesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5PropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionPropertiesNV)
@@ -215,6 +238,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT)
@@ -255,6 +280,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
@@ -276,6 +302,8 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueuePropertiesAMDX)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)
@@ -325,6 +353,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (PhysicalDeviceYcbcrDegammaFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)
 import Vulkan.Core10.Handles (PhysicalDevice_T)
@@ -550,6 +579,12 @@
 --     structure with @handleType@ set to
 --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
 --
+-- -   #VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004# If the
+--     @pNext@ chain of @pImageFormatProperties@ includes a
+--     'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT'
+--     structure, @pImageFormatInfo->usage@ /must/ contain
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter#
@@ -861,12 +896,26 @@
   getNext PhysicalDeviceFeatures2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolveFeaturesANDROID = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2FeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCubicWeightsFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceYcbcrDegammaFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCubicClampFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueueFeaturesAMDX = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesKHR = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderTileImageFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderObjectFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceRayTracingPositionFetchFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDepthBiasControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceFrameBoundaryFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f
@@ -887,6 +936,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceNestedCommandBufferFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = Just f
     | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f
@@ -905,12 +955,14 @@
     | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceHostImageCopyFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f
@@ -998,6 +1050,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance5FeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f
@@ -1011,6 +1064,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f
     | otherwise = Nothing
 
@@ -1067,6 +1121,7 @@
 --     '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_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesKHR',
 --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV',
 --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT',
@@ -1080,6 +1135,8 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties',
 --     'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT',
+--     'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV',
+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID',
 --     'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',
 --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',
@@ -1089,18 +1146,23 @@
 --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
 --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
 --     'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',
+--     'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',
+--     'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM',
 --     'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',
 --     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties',
+--     'Vulkan.Extensions.VK_MSFT_layered_driver.PhysicalDeviceLayeredDriverPropertiesMSFT',
 --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
 --     'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties',
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR',
 --     'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT',
 --     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties',
+--     'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferPropertiesEXT',
 --     'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapPropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT',
@@ -1121,6 +1183,7 @@
 --     'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD',
 --     'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',
 --     'Vulkan.Extensions.VK_ARM_shader_core_properties.PhysicalDeviceShaderCorePropertiesARM',
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueuePropertiesAMDX',
 --     'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties',
 --     'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT',
 --     'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectPropertiesEXT',
@@ -1170,9 +1233,15 @@
   getNext PhysicalDeviceProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolvePropertiesANDROID = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceLayeredDriverPropertiesMSFT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2PropertiesQCOM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueuePropertiesAMDX = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderTileImagePropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderObjectPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderCorePropertiesARM = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceExtendedSparseAddressSpacePropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsPropertiesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowPropertiesNV = Just f
@@ -1181,6 +1250,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceDisplacementMicromapPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceOpacityMicromapPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierPropertiesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceNestedCommandBufferPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f
@@ -1188,6 +1258,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceHostImageCopyPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f
@@ -1227,6 +1298,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceConservativeRasterizationPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryHostPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFloatControlsProperties = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceMaintenance5PropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Properties = Just f
     | Just Refl <- eqT @e @PhysicalDeviceMaintenance3Properties = Just f
     | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockProperties = Just f
@@ -1394,6 +1466,7 @@
 --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties',
 --     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT',
+--     'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT',
 --     'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties',
 --     or
@@ -1433,6 +1506,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageFormatProperties2 e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f
+    | Just Refl <- eqT @e @HostImageCopyDevicePerformanceQueryEXT = Just f
     | Just Refl <- eqT @e @FilterCubicImageViewImageFormatPropertiesEXT = Just f
     | Just Refl <- eqT @e @AndroidHardwareBufferUsageANDROID = Just f
     | Just Refl <- eqT @e @TextureLODGatherFormatPropertiesAMD = Just f
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs
@@ -60,7 +60,7 @@
 -- the only way to release memory from a command pool to the system
 -- requires calling 'Vulkan.Core10.CommandPool.resetCommandPool', which
 -- cannot be executed while any command buffers from that pool are still in
--- use. Subsequent recording operations into command buffers will re-use
+-- use. Subsequent recording operations into command buffers will reuse
 -- this memory but since total memory requirements fluctuate over time,
 -- unused memory can accumulate.
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs
@@ -53,7 +53,8 @@
 --
 -- = Description
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
@@ -79,6 +79,7 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ExternalFormatQNX)
 import Vulkan.Core10.Enums.Filter (Filter)
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)
@@ -90,6 +91,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core11.Handles (SamplerYcbcrConversion)
 import Vulkan.Core11.Handles (SamplerYcbcrConversion(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM)
 import Vulkan.Core11.Enums.SamplerYcbcrModelConversion (SamplerYcbcrModelConversion)
 import Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange)
 import Vulkan.CStruct.Extends (SomeStruct)
@@ -382,7 +384,7 @@
 --
 -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-format-04061# If an
 --     external format conversion is not being created, @format@ /must/
---     represent unsigned normalized values (i.e. the format must be a
+--     represent unsigned normalized values (i.e. the format /must/ be a
 --     @UNORM@ format)
 --
 -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-format-01650# The
@@ -474,15 +476,43 @@
 --     @chromaFilter@ /must/ not be
 --     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'
 --
+-- -   #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207# If the @pNext@
+--     chain includes a
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--     structure, and if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcr-degamma ycbcrDegamma>
+--     feature is not enabled, then
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'::@enableYDegamma@
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208# If the @pNext@
+--     chain includes a
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--     structure, and if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcr-degamma ycbcrDegamma>
+--     feature is not enabled, then
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'::@enableCbCrDegamma@
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209# If the @pNext@
+--     chain includes a
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--     structure, @format@ /must/ be a format with 8-bit R, G, and B
+--     components.
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType# @sType@ /must/
 --     be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO'
 --
--- -   #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext# @pNext@ /must/
---     be @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+-- -   #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX',
+--     or
+--     'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
 --
 -- -   #VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique# The @sType@
 --     value of each struct in the @pNext@ chain /must/ be unique
@@ -583,6 +613,8 @@
   getNext SamplerYcbcrConversionCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerYcbcrConversionCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = Just f
+    | Just Refl <- eqT @e @ExternalFormatQNX = Just f
     | Just Refl <- eqT @e @ExternalFormatANDROID = Just f
     | otherwise = Nothing
 
@@ -665,6 +697,7 @@
 --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then
 --     @planeAspect@ /must/ be a single valid
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284# If the image’s
 --     @tiling@ is
@@ -744,6 +777,7 @@
 --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then
 --     @planeAspect@ /must/ be a single valid
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282# If the
 --     image’s @tiling@ is
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs
@@ -41,7 +41,8 @@
 --
 -- = Description
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
diff --git a/src/Vulkan/Core12.hs b/src/Vulkan/Core12.hs
--- a/src/Vulkan/Core12.hs
+++ b/src/Vulkan/Core12.hs
@@ -550,7 +550,8 @@
 --
 -- = Description
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
@@ -1554,10 +1555,9 @@
     -- disabled.
     robustBufferAccessUpdateAfterBind :: Bool
   , -- | #limits-quadDivergentImplicitLod# @quadDivergentImplicitLod@ is a
-    -- boolean value indicating whether implicit level of detail calculations
-    -- for image operations have well-defined results when the image and\/or
-    -- sampler objects used for the instruction are not uniform within a quad.
-    -- See
+    -- boolean value indicating whether implicit LOD calculations for image
+    -- operations have well-defined results when the image and\/or sampler
+    -- objects used for the instruction are not uniform within a quad. See
     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>.
     quadDivergentImplicitLod :: Bool
   , -- | #limits-maxPerStageDescriptorUpdateAfterBindSamplers#
diff --git a/src/Vulkan/Core12/Enums/DriverId.hs b/src/Vulkan/Core12/Enums/DriverId.hs
--- a/src/Vulkan/Core12/Enums/DriverId.hs
+++ b/src/Vulkan/Core12/Enums/DriverId.hs
@@ -25,6 +25,7 @@
                                               , DRIVER_ID_MESA_DOZEN
                                               , DRIVER_ID_MESA_NVK
                                               , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
+                                              , DRIVER_ID_MESA_AGXV
                                               , ..
                                               )) where
 
@@ -140,6 +141,9 @@
 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"
 pattern DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = DriverId 25
 
+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_AGXV"
+pattern DRIVER_ID_MESA_AGXV = DriverId 26
+
 {-# COMPLETE
   DRIVER_ID_AMD_PROPRIETARY
   , DRIVER_ID_AMD_OPEN_SOURCE
@@ -165,7 +169,8 @@
   , DRIVER_ID_MESA_VENUS
   , DRIVER_ID_MESA_DOZEN
   , DRIVER_ID_MESA_NVK
-  , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA ::
+  , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
+  , DRIVER_ID_MESA_AGXV ::
     DriverId
   #-}
 
@@ -217,6 +222,7 @@
     ( DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
     , "IMAGINATION_OPEN_SOURCE_MESA"
     )
+  , (DRIVER_ID_MESA_AGXV, "MESA_AGXV")
   ]
 
 instance Show DriverId where
diff --git a/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs b/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs
--- a/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs
+++ b/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs
@@ -6,6 +6,7 @@
                                                                      , RESOLVE_MODE_AVERAGE_BIT
                                                                      , RESOLVE_MODE_MIN_BIT
                                                                      , RESOLVE_MODE_MAX_BIT
+                                                                     , RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
                                                                      , ..
                                                                      )
                                                 ) where
@@ -26,6 +27,21 @@
 -- | VkResolveModeFlagBits - Bitmask indicating supported depth and stencil
 -- resolve modes
 --
+-- = Description
+--
+-- If no resolve mode is otherwise specified, 'RESOLVE_MODE_AVERAGE_BIT' is
+-- used.
+--
+-- Note
+--
+-- No range compression or Y′CBCR model conversion is performed by
+-- 'RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'; applications have to
+-- do these conversions themselves. Value outputs are expected to match
+-- those that would be read through a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-modelconversion Y′CBCR sampler using >.
+-- The color space that the values should be in is defined by the platform
+-- and is not exposed via Vulkan.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>,
@@ -55,6 +71,22 @@
 -- the maximum of the sample values.
 pattern RESOLVE_MODE_MAX_BIT = ResolveModeFlagBits 0x00000008
 
+-- | 'RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' indicates that rather
+-- than a multisample resolve, a single sampled color attachment will be
+-- downsampled into a Y′CBCR format image specified by an external Android
+-- format. Unlike other resolve modes, implementations can resolve multiple
+-- times during rendering, or even bypass writing to the color attachment
+-- altogether, as long as the final value is resolved to the resolve
+-- attachment. Values in the G, B, and R channels of the color attachment
+-- will be written to the Y, CB, and CR channels of the external format
+-- image, respectively. Chroma values are calculated as if sampling with a
+-- linear filter from the color attachment at full rate, at the location
+-- the chroma values sit according to
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID'::@chromaOffsetX@,
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID'::@chromaOffsetY@,
+-- and the chroma sample rate of the resolved image.
+pattern RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = ResolveModeFlagBits 0x00000010
+
 conNameResolveModeFlagBits :: String
 conNameResolveModeFlagBits = "ResolveModeFlagBits"
 
@@ -71,6 +103,10 @@
   , (RESOLVE_MODE_AVERAGE_BIT, "AVERAGE_BIT")
   , (RESOLVE_MODE_MIN_BIT, "MIN_BIT")
   , (RESOLVE_MODE_MAX_BIT, "MAX_BIT")
+  ,
+    ( RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
+    , "EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID"
+    )
   ]
 
 instance Show ResolveModeFlagBits where
diff --git a/src/Vulkan/Core12/Enums/SamplerReductionMode.hs b/src/Vulkan/Core12/Enums/SamplerReductionMode.hs
--- a/src/Vulkan/Core12/Enums/SamplerReductionMode.hs
+++ b/src/Vulkan/Core12/Enums/SamplerReductionMode.hs
@@ -3,6 +3,7 @@
 module Vulkan.Core12.Enums.SamplerReductionMode  (SamplerReductionMode( SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
                                                                       , SAMPLER_REDUCTION_MODE_MIN
                                                                       , SAMPLER_REDUCTION_MODE_MAX
+                                                                      , SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
                                                                       , ..
                                                                       )) where
 
@@ -41,10 +42,17 @@
 -- non-zero weights.
 pattern SAMPLER_REDUCTION_MODE_MAX = SamplerReductionMode 2
 
+-- | 'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' specifies
+-- values are combined as described by
+-- 'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE', followed by a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-range-clamp texel range clamp>.
+pattern SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = SamplerReductionMode 1000521000
+
 {-# COMPLETE
   SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
   , SAMPLER_REDUCTION_MODE_MIN
-  , SAMPLER_REDUCTION_MODE_MAX ::
+  , SAMPLER_REDUCTION_MODE_MAX
+  , SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM ::
     SamplerReductionMode
   #-}
 
@@ -62,6 +70,10 @@
     )
   , (SAMPLER_REDUCTION_MODE_MIN, "MIN")
   , (SAMPLER_REDUCTION_MODE_MAX, "MAX")
+  ,
+    ( SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
+    , "WEIGHTED_AVERAGE_RANGECLAMP_QCOM"
+    )
   ]
 
 instance Show SamplerReductionMode where
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs
@@ -488,10 +488,10 @@
     -- disabled.
     robustBufferAccessUpdateAfterBind :: Bool
   , -- | #extension-limits-quadDivergentImplicitLod# @quadDivergentImplicitLod@
-    -- is a boolean value indicating whether implicit level of detail
-    -- calculations for image operations have well-defined results when the
-    -- image and\/or sampler objects used for the instruction are not uniform
-    -- within a quad. See
+    -- is a boolean value indicating whether implicit LOD calculations for
+    -- image operations have well-defined results when the image and\/or
+    -- sampler objects used for the instruction are not uniform within a quad.
+    -- See
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>.
     quadDivergentImplicitLod :: Bool
   , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindSamplers#
@@ -794,6 +794,11 @@
 --     'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo'::@pBindings@
 --     /must/ have a smaller value of @binding@
 --
+-- -   #VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379#
+--     If an element of @pBindingFlags@ includes
+--     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT',
+--     then it /must/ be the element with the the highest @binding@ number
+--
 -- -   #VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005#
 --     If
 --     'PhysicalDeviceDescriptorIndexingFeatures'::@descriptorBindingUniformBufferUpdateAfterBind@
@@ -1064,11 +1069,12 @@
 -- 'PhysicalDeviceDescriptorIndexingFeatures'::@descriptorBindingVariableDescriptorCount@
 -- feature is not enabled, then @maxVariableDescriptorCount@ is set to
 -- zero. For the purposes of this command, a variable-sized descriptor
--- binding with a @descriptorCount@ of zero is treated as if the
--- @descriptorCount@ is one, and thus the binding is not ignored and the
--- maximum descriptor count will be returned. If the layout is not
--- supported, then the value written to @maxVariableDescriptorCount@ is
--- undefined.
+-- binding with a @descriptorCount@ of zero is treated as having a
+-- @descriptorCount@ of four if @descriptorType@ is
+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK',
+-- or one otherwise, and thus the binding is not ignored and the maximum
+-- descriptor count will be returned. If the layout is not supported, then
+-- the value written to @maxVariableDescriptorCount@ is undefined.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
@@ -88,6 +88,7 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
 import Vulkan.Core10.Enums.Format (Format)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR)
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
@@ -363,6 +364,12 @@
 --     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'
 --     set
 --
+-- -   #VUID-vkCmdBeginRenderPass2-framebuffer-09046# If any attachments
+--     specified in @framebuffer@ are used by @renderPass@ and are bound to
+--     overlapping memory locations, there /must/ be only one that is used
+--     as a color attachment, depth\/stencil, or resolve attachment in any
+--     subpass
+--
 -- -   #VUID-vkCmdBeginRenderPass2-initialLayout-07002# If any of the
 --     @initialLayout@ or @finalLayout@ member of the
 --     'Vulkan.Core10.Pass.AttachmentDescription' structures or the
@@ -742,10 +749,13 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'
 -- structure in the @pNext@ chain.
 --
--- == Valid Usage
+-- @loadOp@ and @storeOp@ are ignored for fragment shading rate
+-- attachments. No access to the shading rate attachment is performed in
+-- @loadOp@ and @storeOp@. Instead, access to
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'
+-- is performed as fragments are rasterized.
 --
--- -   #VUID-VkAttachmentDescription2-format-06698# @format@ /must/ not be
---     VK_FORMAT_UNDEFINED
+-- == Valid Usage
 --
 -- -   #VUID-VkAttachmentDescription2-format-06699# If @format@ includes a
 --     color or depth component and @loadOp@ is
@@ -880,6 +890,11 @@
 --     feature is not enabled, @finalLayout@ /must/ not be
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
 --
+-- -   #VUID-VkAttachmentDescription2-samples-08745# @samples@ /must/ be a
+--     bit value that is set in @imageCreateSampleCounts@ (as defined in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)
+--     for the given @format@
+--
 -- -   #VUID-VkAttachmentDescription2-pNext-06704# If the @pNext@ chain
 --     does not include a
 --     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'
@@ -937,14 +952,28 @@
 --     or
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
 --
+-- -   #VUID-VkAttachmentDescription2-format-09332# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is not enabled, @format@ /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-VkAttachmentDescription2-format-09334# If @format@ is
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', there /must/ be a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--     structure in the @pNext@ chain with a @externalFormat@ that is not
+--     equal to @0@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkAttachmentDescription2-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2'
 --
--- -   #VUID-VkAttachmentDescription2-pNext-pNext# @pNext@ /must/ be @NULL@
---     or a pointer to a valid instance of
+-- -   #VUID-VkAttachmentDescription2-pNext-pNext# Each @pNext@ member of
+--     any structure (including this one) in the @pNext@ chain /must/ be
+--     either @NULL@ or a pointer to a valid instance of
 --     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'
+--     or
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
 --
 -- -   #VUID-VkAttachmentDescription2-sType-unique# The @sType@ value of
 --     each struct in the @pNext@ chain /must/ be unique
@@ -1049,6 +1078,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AttachmentDescription2 e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @AttachmentDescriptionStencilLayout = Just f
+    | Just Refl <- eqT @e @ExternalFormatANDROID = Just f
     | otherwise = Nothing
 
 instance ( Extendss AttachmentDescription2 es
@@ -1297,6 +1327,73 @@
 -- identified attachment defines a fragment shading rate attachment for
 -- that subpass.
 --
+-- If any element of @pResolveAttachments@ is an image specified with an
+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',
+-- values in the corresponding color attachment will be resolved to the
+-- resolve attachment in the same manner as specified for
+-- <VkResolveModeFlagBits.html >.
+--
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE', values in the color
+-- attachment will be loaded from the resolve attachment at the start of
+-- rendering, and /may/ also be reloaded any time after a resolve occurs or
+-- the resolve attachment is written to; if this occurs it /must/
+-- happen-before any writes to the color attachment are performed which
+-- happen-after the resolve that triggers this. If any color component in
+-- the external format is subsampled, values will be read from the nearest
+-- sample in the image when they are loaded. If the color attachment is
+-- also used as an input attachment, the same behavior applies.
+--
+-- Setting the color attachment to
+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' when an external resolve
+-- attachment is used and the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE' will not result in color
+-- attachment writes to be discarded for that attachment.
+--
+-- When
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+-- is 'Vulkan.Core10.FundamentalTypes.TRUE', the color output from the
+-- subpass can still be read via an input attachment; but the application
+-- cannot bind an image view for the color attachment as there is no such
+-- image view bound. Instead to access the data as an input attachment
+-- applications /can/ use the resolve attachment in its place - using the
+-- resolve attachment image for the descriptor, and setting the
+-- corresponding element of @pInputAttachments@ to the index of the resolve
+-- attachment.
+--
+-- Loads or input attachment reads from the resolve attachment are
+-- performed as if using a
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- with the following parameters:
+--
+-- > VkSamplerYcbcrConversionCreateInfo createInfo = {
+-- >     .sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
+-- >     .pNext = NULL,
+-- >     .format = VK_FORMAT_UNDEFINED,
+-- >     .ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
+-- >     .ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
+-- >     .components = {
+-- >         .r = VK_COMPONENT_SWIZZLE_B
+-- >         .g = VK_COMPONENT_SWIZZLE_R
+-- >         .b = VK_COMPONENT_SWIZZLE_G
+-- >         .a = VK_COMPONENT_SWIZZLE_IDENTITY},
+-- >     .xChromaOffset = properties.chromaOffsetX,
+-- >     .yChromaOffset = properties.chromaOffsetY,
+-- >     .chromaFilter = ename:VK_FILTER_NEAREST,
+-- >     .forceExplicitReconstruction = ... };
+--
+-- where @properties@ is equal to
+-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+-- returned by the device and @forceExplicitReconstruction@ is effectively
+-- ignored as the
+-- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY'
+-- model is used. The applied swizzle is the same effective swizzle that
+-- would be applied by the
+-- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY'
+-- model, but no range expansion is applied.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkSubpassDescription2-attachment-06912# If the @attachment@
@@ -1397,7 +1494,7 @@
 --     member of @pDepthStencilAttachment@ is not
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and its @pNext@ chain
 --     includes a
---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'
+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'
 --     structure, the @layout@ member of @pDepthStencilAttachment@ /must/
 --     not be
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'
@@ -1420,29 +1517,51 @@
 --     in the same subpass, then @loadOp@ /must/ not be
 --     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'
 --
--- -   #VUID-VkSubpassDescription2-pResolveAttachments-03065# If
---     @pResolveAttachments@ is not @NULL@, for each resolve attachment
---     that does not have the value
+-- -   #VUID-VkSubpassDescription2-pResolveAttachments-03067# If
+--     @pResolveAttachments@ is not @NULL@, each resolve attachment that is
+--     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a
+--     sample count of
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09335# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is not enabled and @pResolveAttachments@ is not @NULL@, for each
+--     resolve attachment that does not have the value
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the corresponding
 --     color attachment /must/ not have the value
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
 --
--- -   #VUID-VkSubpassDescription2-pResolveAttachments-03066# If
+-- -   #VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     property is 'Vulkan.Core10.FundamentalTypes.FALSE' and
 --     @pResolveAttachments@ is not @NULL@, for each resolve attachment
---     that is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the
---     corresponding color attachment /must/ not have a sample count of
---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--     that has a format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
+--     the corresponding color attachment /must/ not have the value
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
 --
--- -   #VUID-VkSubpassDescription2-pResolveAttachments-03067# If
---     @pResolveAttachments@ is not @NULL@, each resolve attachment that is
---     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a
---     sample count of
+-- -   #VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     property is 'Vulkan.Core10.FundamentalTypes.TRUE' and
+--     @pResolveAttachments@ is not @NULL@, for each resolve attachment
+--     that has a format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
+--     the corresponding color attachment /must/ have the value
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
+--
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09338# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is not enabled and @pResolveAttachments@ is not @NULL@, for each
+--     resolve attachment that is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the corresponding
+--     color attachment /must/ not have a sample count of
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
 --
--- -   #VUID-VkSubpassDescription2-pResolveAttachments-03068# Any given
---     element of @pResolveAttachments@ /must/ have the same
---     'Vulkan.Core10.Enums.Format.Format' as its corresponding color
---     attachment
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09339# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is not enabled, each element of @pResolveAttachments@ /must/ have
+--     the same 'Vulkan.Core10.Enums.Format.Format' as its corresponding
+--     color attachment
 --
 -- -   #VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869#
 --     If none of the @VK_AMD_mixed_attachment_samples@ extension, the
@@ -1454,8 +1573,21 @@
 --
 -- -   #VUID-VkSubpassDescription2-pInputAttachments-02897# All attachments
 --     in @pInputAttachments@ that are not
---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
---     formats whose
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and any of the
+--     following is true:
+--
+--     -   the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--         feature is not enabled
+--
+--     -   the
+--         <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--         property is 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+--     -   does not have a non-zero value of
+--         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--
+--     /must/ have image formats whose
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
 --     contain at least
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
@@ -1470,10 +1602,11 @@
 --     contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
 --
--- -   #VUID-VkSubpassDescription2-pResolveAttachments-02899# All
+-- -   #VUID-VkSubpassDescription2-pResolveAttachments-09343# All
 --     attachments in @pResolveAttachments@ that are not
---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
---     formats whose
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and do not have an
+--     image format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' /must/
+--     have image formats whose
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
 --     contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
@@ -1567,9 +1700,9 @@
 --     @pPreserveAttachments@ /must/ not be
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
 --
--- -   #VUID-VkSubpassDescription2-pPreserveAttachments-03074# Any given
---     element of @pPreserveAttachments@ /must/ not also be an element of
---     any other member of the subpass description
+-- -   #VUID-VkSubpassDescription2-pPreserveAttachments-03074# Each element
+--     of @pPreserveAttachments@ /must/ not also be an element of any other
+--     member of the subpass description
 --
 -- -   #VUID-VkSubpassDescription2-layout-02528# If any attachment is used
 --     by more than one 'AttachmentReference2' member, then each use /must/
@@ -1615,6 +1748,52 @@
 --     significant bit in @viewMask@ /must/ be less than
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>
 --
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09344# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is enabled, @pResolveAttachments@ is not @NULL@, and
+--     @colorAttachmentCount@ is not @1@, any element of
+--     @pResolveAttachments@ that is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', /must/ not have a
+--     format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09345# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is enabled, @pResolveAttachments@ is not @NULL@, any element of
+--     @pResolveAttachments@ is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and the corresponding
+--     element of @pColorAttachments@ is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the color attachment
+--     /must/ have a @samples@ value of @1@
+--
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09346# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is enabled, @pResolveAttachments@ is not @NULL@, and any element of
+--     @pResolveAttachments@ is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', @viewMask@ /must/ be
+--     @0@
+--
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09347# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is enabled, @pResolveAttachments@ is not @NULL@, and any element of
+--     @pResolveAttachments@ is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'::@pFragmentShadingRateAttachment@
+--     /must/ either be @NULL@ or a 'AttachmentReference2' structure with a
+--     @attachment@ value of 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
+--
+-- -   #VUID-VkSubpassDescription2-externalFormatResolve-09348# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is enabled, @pResolveAttachments@ is not @NULL@, and any element of
+--     @pResolveAttachments@ is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', elements of
+--     @pInputAttachments@ referencing either a color attachment or resolve
+--     attachment used in this subpass /must/ not include
+--     @VK_IMAGE_ASPECT_PLANE_i_BIT@ for any index /i/ in its @aspectMask@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkSubpassDescription2-sType-sType# @sType@ /must/ be
@@ -1894,7 +2073,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature is not enabled, @srcStageMask@ /must/ not be @0@
 --
--- -   #VUID-VkSubpassDependency2-rayTracingPipeline-07949# If neither the
+-- -   #VUID-VkSubpassDependency2-srcStageMask-07949# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -1949,7 +2128,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>
 --     feature is not enabled, @dstStageMask@ /must/ not be @0@
 --
--- -   #VUID-VkSubpassDependency2-rayTracingPipeline-07949# If neither the
+-- -   #VUID-VkSubpassDependency2-dstStageMask-07949# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -2198,7 +2377,7 @@
 --     member of any element of @pInputAttachments@, @pColorAttachments@,
 --     @pResolveAttachments@ or @pDepthStencilAttachment@, or the
 --     attachment indexed by any element of @pPreserveAttachments@ in any
---     given element of @pSubpasses@ is bound to a range of a
+--     element of @pSubpasses@ is bound to a range of a
 --     'Vulkan.Core10.Handles.DeviceMemory' object that overlaps with any
 --     other attachment in any subpass (including the same subpass), the
 --     'AttachmentDescription2' structures describing them /must/ include
@@ -2208,9 +2387,9 @@
 -- -   #VUID-VkRenderPassCreateInfo2-attachment-03051# If the @attachment@
 --     member of any element of @pInputAttachments@, @pColorAttachments@,
 --     @pResolveAttachments@ or @pDepthStencilAttachment@, or any element
---     of @pPreserveAttachments@ in any given element of @pSubpasses@ is
---     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', then it /must/
---     be less than @attachmentCount@
+--     of @pPreserveAttachments@ in any element of @pSubpasses@ is not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', then it /must/ be
+--     less than @attachmentCount@
 --
 -- -   #VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472# If
 --     the pNext chain includes a
@@ -2309,6 +2488,11 @@
 --     subpass, it /must/ not be used as any other attachment in the render
 --     pass
 --
+-- -   #VUID-VkRenderPassCreateInfo2-pAttachments-09387# If any element of
+--     @pAttachments@ is used as a fragment shading rate attachment, the
+--     @loadOp@ for that attachment /must/ not be
+--     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'
+--
 -- -   #VUID-VkRenderPassCreateInfo2-flags-04521# If @flags@ includes
 --     'Vulkan.Core10.Enums.RenderPassCreateFlagBits.RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM',
 --     an element of @pSubpasses@ includes an instance of
@@ -2392,6 +2576,13 @@
 --     @attachment@ /must/ not have a @format@ that includes only a stencil
 --     component
 --
+-- -   #VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331# If any
+--     element of @pResolveAttachments@ of any element of @pSubpasses@
+--     references an attachment description with a format of
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',
+--     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment->attachment@
+--     /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkRenderPassCreateInfo2-sType-sType# @sType@ /must/ be
@@ -2552,8 +2743,24 @@
 
 -- | VkSubpassBeginInfo - Structure specifying subpass begin information
 --
+-- == Valid Usage
+--
+-- -   #VUID-VkSubpassBeginInfo-contents-09382# If @contents@ is
+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT',
+--     then
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--     /must/ be enabled
+--
 -- == Valid Usage (Implicit)
 --
+-- -   #VUID-VkSubpassBeginInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_BEGIN_INFO'
+--
+-- -   #VUID-VkSubpassBeginInfo-pNext-pNext# @pNext@ /must/ be @NULL@
+--
+-- -   #VUID-VkSubpassBeginInfo-contents-parameter# @contents@ /must/ be a
+--     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>,
@@ -2567,9 +2774,6 @@
 data SubpassBeginInfo = SubpassBeginInfo
   { -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'
     -- value specifying how the commands in the next subpass will be provided.
-    --
-    -- #VUID-VkSubpassBeginInfo-contents-parameter# @contents@ /must/ be a
-    -- valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value
     contents :: SubpassContents }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs
@@ -159,9 +159,18 @@
 --
 -- = Description
 --
--- If @pDepthStencilResolveAttachment@ is @NULL@, or if its attachment
--- index is 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', it indicates
--- that no depth\/stencil resolve attachment will be used in the subpass.
+-- If the @pNext@ chain of
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'
+-- includes a 'SubpassDescriptionDepthStencilResolve' structure, then that
+-- structure describes
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve operations>
+-- for the depth\/stencil attachment in a subpass. If this structure is not
+-- included in the @pNext@ chain of
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',
+-- or if it is and either @pDepthStencilResolveAttachment@ is @NULL@ or its
+-- attachment index is 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', it
+-- indicates that no depth\/stencil resolve attachment will be used in the
+-- subpass.
 --
 -- == Valid Usage
 --
@@ -198,7 +207,7 @@
 --     @pDepthStencilResolveAttachment@ has a depth component, then the
 --     'Vulkan.Core10.Enums.Format.Format' of @pDepthStencilAttachment@
 --     /must/ have a depth component with the same number of bits and
---     numerical type
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat numeric format>
 --
 -- -   #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182#
 --     If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have
@@ -207,7 +216,7 @@
 --     @pDepthStencilResolveAttachment@ has a stencil component, then the
 --     'Vulkan.Core10.Enums.Format.Format' of @pDepthStencilAttachment@
 --     /must/ have a stencil component with the same number of bits and
---     numerical type
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat numeric format>
 --
 -- -   #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178#
 --     If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
@@ -96,5783 +96,7159 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08601# For each push constant that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirectCount-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08608# If a pipeline is bound to
---     the pipeline bind point used by this command, 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-vkCmdDrawIndirectCount-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirectCount-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirectCount-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawIndirectCount-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirectCount-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08617# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08618# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08619# If a shader object that
---     outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08620# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08621# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08622# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08623# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08624# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08625# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08626# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08627# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08628# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08629# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08630# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08631# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08632# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08633# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08634# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08635# If a shader object is bound
---     to any graphics stage, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08636# If a shader object is bound
---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08637# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08638# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08639# If a shader object is bound
---     to any graphics stage, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08640# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08641# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08643# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndirectCount-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08644# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawIndirectCount-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndirectCount-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndirectCount-pNext-07935# If this command has been
---     called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08651# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08652# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08653# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08654# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08657# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08658# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08659# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndirectCount-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-sampleLocationsEnable-07936# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08698# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawIndirectCount-None-08699# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndirectCount-pDynamicStates-08715# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndirectCount-pDynamicStates-08716# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings
---     accessed via vertex input variables declared in the vertex shader
---     entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawIndirectCount-None-02721# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawIndirectCount-None-07842# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04912# If the bound graphics
---     pipeline was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndirectCount-pStrides-04913# If the bound graphics
---     pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04914# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndirectCount-Input-07939# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04875# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndirectCount-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndirectCount-buffer-02708# If @buffer@ is non-sparse
---     then it /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndirectCount-buffer-02709# @buffer@ /must/ have been
---     created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndirectCount-offset-02710# @offset@ /must/ be a
---     multiple of @4@
---
--- -   #VUID-vkCmdDrawIndirectCount-commandBuffer-02711# @commandBuffer@
---     /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawIndirectCount-countBuffer-02714# If @countBuffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawIndirectCount-countBuffer-02715# @countBuffer@ /must/
---     have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawIndirectCount-countBufferOffset-02716#
---     @countBufferOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawIndirectCount-countBuffer-02717# The count stored in
---     @countBuffer@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawIndirectCount-countBufferOffset-04129#
---     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
---     equal to the size of @countBuffer@
---
--- -   #VUID-vkCmdDrawIndirectCount-None-04445# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
---     is not enabled this function /must/ not be used
---
--- -   #VUID-vkCmdDrawIndirectCount-stride-03110# @stride@ /must/ be a
---     multiple of @4@ and /must/ be greater than or equal to
---     sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand')
---
--- -   #VUID-vkCmdDrawIndirectCount-maxDrawCount-03111# If @maxDrawCount@
---     is greater than or equal to @1@, (@stride@ × (@maxDrawCount@ - 1) +
---     @offset@ + sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand'))
---     /must/ be less than or equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawIndirectCount-countBuffer-03121# If the count stored
---     in @countBuffer@ is equal to @1@, (@offset@ +
---     sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be
---     less than or equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawIndirectCount-countBuffer-03122# If the count stored
---     in @countBuffer@ is greater than @1@, (@stride@ × (@drawCount@ - 1)
---     + @offset@ + sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand'))
---     /must/ be less than or equal to the size of @buffer@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawIndirectCount-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawIndirectCount-buffer-parameter# @buffer@ /must/ be a
---     valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawIndirectCount-countBuffer-parameter# @countBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawIndirectCount-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawIndirectCount-videocoding# This command /must/ only
---     be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawIndirectCount-commonparent# Each of @buffer@,
---     @commandBuffer@, and @countBuffer@ /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_AMD_draw_indirect_count VK_AMD_draw_indirect_count>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_draw_indirect_count VK_KHR_draw_indirect_count>,
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2 VK_VERSION_1_2>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawIndirectCount :: 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)
-                     -> -- | @countBuffer@ is the buffer containing the draw count.
-                        ("countBuffer" ::: Buffer)
-                     -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw
-                        -- count begins.
-                        ("countBufferOffset" ::: DeviceSize)
-                     -> -- | @maxDrawCount@ specifies the maximum number of draws that will be
-                        -- executed. The actual number of executed draw calls is the minimum of the
-                        -- count specified in @countBuffer@ and @maxDrawCount@.
-                        ("maxDrawCount" ::: Word32)
-                     -> -- | @stride@ is the byte stride between successive sets of draw parameters.
-                        ("stride" ::: Word32)
-                     -> io ()
-cmdDrawIndirectCount commandBuffer
-                       buffer
-                       offset
-                       countBuffer
-                       countBufferOffset
-                       maxDrawCount
-                       stride = liftIO $ do
-  let vkCmdDrawIndirectCountPtr = pVkCmdDrawIndirectCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawIndirectCountPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectCount is null" Nothing Nothing
-  let vkCmdDrawIndirectCount' = mkVkCmdDrawIndirectCount vkCmdDrawIndirectCountPtr
-  traceAroundEvent "vkCmdDrawIndirectCount" (vkCmdDrawIndirectCount'
-                                               (commandBufferHandle (commandBuffer))
-                                               (buffer)
-                                               (offset)
-                                               (countBuffer)
-                                               (countBufferOffset)
-                                               (maxDrawCount)
-                                               (stride))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawIndexedIndirectCount
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawIndexedIndirectCount - Draw parameters with indirect
--- parameters, indexed vertices, and draw count
---
--- = Description
---
--- 'cmdDrawIndexedIndirectCount' behaves similarly to
--- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect' except that
--- the draw count is read by the device from a buffer during execution. The
--- command will read an unsigned 32-bit integer from @countBuffer@ located
--- at @countBufferOffset@ and use this as the draw count.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08600# For each set /n/
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08608# If a pipeline is
---     bound to the pipeline bind point used by this command, 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-vkCmdDrawIndexedIndirectCount-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirectCount-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirectCount-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawIndexedIndirectCount-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirectCount-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07831# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07832# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07833# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08617# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08618# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08619# If a shader object
---     that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07834# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08620# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07835# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08621# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07836# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08622# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07837# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08623# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07838# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08624# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07839# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08625# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08626# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07840# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08627# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07841# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08628# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07843# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08629# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07844# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08630# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07845# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08631# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07846# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08632# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07847# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08633# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07848# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08634# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08635# If a shader object
---     is bound to any graphics stage, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08636# If a shader object
---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08637# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07878# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08638# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08639# If a shader object
---     is bound to any graphics stage, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08640# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08641# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08643# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08644# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07880# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07881# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirectCount-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
---     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirectCount-pNext-07935# If this command has
---     been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08651# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08652# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08653# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08654# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08657# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08658# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08659# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input
---     bindings accessed via vertex input variables declared in the vertex
---     shader entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02721# For a given vertex
---     buffer binding, any attribute data fetched /must/ be entirely
---     contained within the corresponding vertex buffer binding, as
---     described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07842# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04912# If the bound
---     graphics pipeline was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913# If the bound
---     graphics pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04914# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-Input-07939# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04875# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawIndexedIndirectCount-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+-- -   #VUID-vkCmdDrawIndirectCount-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08601# For each push constant that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirectCount-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-vkCmdDrawIndirectCount-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndirectCount-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndirectCount-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawIndirectCount-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndirectCount-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawIndirectCount-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawIndirectCount-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-09000# If a color attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09001# If a depth attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09003# If an attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass in any way other than as an
+--     attachment, this command /must/ not write to that image subresource
+--     as an attachment
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08617# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08618# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08619# If a shader object that
+--     outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08620# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08621# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08622# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08623# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08624# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08625# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08626# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08627# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08628# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08629# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08630# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08631# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08632# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08633# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08634# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08635# If a shader object is bound
+--     to any graphics stage, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-09232# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08636# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-shadingRateImage-09234# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08637# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08638# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08639# If a shader object is bound
+--     to any graphics stage, 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08640# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08641# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08643# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08644# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08876# If a shader object is bound
+--     to any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndirectCount-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09363# If there is no shader
+--     object bound to any graphics stage, the current render pass instance
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09366# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pFragmentSize-09370# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pFragmentSize-09371# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndirectCount-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndirectCount-pNext-07935# If this command has been
+--     called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-09237# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08651# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08652# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08653# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08654# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08657# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08658# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08659# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-rasterizationSamples-07474# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawIndirectCount-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-sampleLocationsEnable-07936# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08698# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08699# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08880# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pDynamicStates-08715# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pDynamicStates-08716# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09116# If a shader object is bound
+--     to any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings
+--     accessed via vertex input variables declared in the vertex shader
+--     entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-02721# For a given vertex buffer
+--     binding, any attribute data fetched /must/ be entirely contained
+--     within the corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-07842# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04912# If the bound graphics
+--     pipeline was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08881# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04914# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-Input-07939# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-Input-08734# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-format-08936# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawIndirectCount-format-08937# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-09203# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08882# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04875# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08883# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-08884# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectCount-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-08885# There /must/ be no shader
+--     object bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #VUID-vkCmdDrawIndirectCount-buffer-02708# If @buffer@ is non-sparse
+--     then it /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndirectCount-buffer-02709# @buffer@ /must/ have been
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndirectCount-offset-02710# @offset@ /must/ be a
+--     multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-commandBuffer-02711# @commandBuffer@
+--     /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBuffer-02714# If @countBuffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBuffer-02715# @countBuffer@ /must/
+--     have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBufferOffset-02716#
+--     @countBufferOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBuffer-02717# The count stored in
+--     @countBuffer@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBufferOffset-04129#
+--     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-None-04445# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
+--     is not enabled this function /must/ not be used
+--
+-- -   #VUID-vkCmdDrawIndirectCount-stride-03110# @stride@ /must/ be a
+--     multiple of @4@ and /must/ be greater than or equal to
+--     sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand')
+--
+-- -   #VUID-vkCmdDrawIndirectCount-maxDrawCount-03111# If @maxDrawCount@
+--     is greater than or equal to @1@, (@stride@ × (@maxDrawCount@ - 1) +
+--     @offset@ + sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand'))
+--     /must/ be less than or equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBuffer-03121# If the count stored
+--     in @countBuffer@ is equal to @1@, (@offset@ +
+--     sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be
+--     less than or equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBuffer-03122# If the count stored
+--     in @countBuffer@ is greater than @1@, (@stride@ × (@drawCount@ - 1)
+--     + @offset@ + sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand'))
+--     /must/ be less than or equal to the size of @buffer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawIndirectCount-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawIndirectCount-buffer-parameter# @buffer@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawIndirectCount-countBuffer-parameter# @countBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawIndirectCount-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawIndirectCount-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawIndirectCount-commonparent# Each of @buffer@,
+--     @commandBuffer@, and @countBuffer@ /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_AMD_draw_indirect_count VK_AMD_draw_indirect_count>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_draw_indirect_count VK_KHR_draw_indirect_count>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2 VK_VERSION_1_2>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawIndirectCount :: 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)
+                     -> -- | @countBuffer@ is the buffer containing the draw count.
+                        ("countBuffer" ::: Buffer)
+                     -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw
+                        -- count begins.
+                        ("countBufferOffset" ::: DeviceSize)
+                     -> -- | @maxDrawCount@ specifies the maximum number of draws that will be
+                        -- executed. The actual number of executed draw calls is the minimum of the
+                        -- count specified in @countBuffer@ and @maxDrawCount@.
+                        ("maxDrawCount" ::: Word32)
+                     -> -- | @stride@ is the byte stride between successive sets of draw parameters.
+                        ("stride" ::: Word32)
+                     -> io ()
+cmdDrawIndirectCount commandBuffer
+                       buffer
+                       offset
+                       countBuffer
+                       countBufferOffset
+                       maxDrawCount
+                       stride = liftIO $ do
+  let vkCmdDrawIndirectCountPtr = pVkCmdDrawIndirectCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawIndirectCountPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectCount is null" Nothing Nothing
+  let vkCmdDrawIndirectCount' = mkVkCmdDrawIndirectCount vkCmdDrawIndirectCountPtr
+  traceAroundEvent "vkCmdDrawIndirectCount" (vkCmdDrawIndirectCount'
+                                               (commandBufferHandle (commandBuffer))
+                                               (buffer)
+                                               (offset)
+                                               (countBuffer)
+                                               (countBufferOffset)
+                                               (maxDrawCount)
+                                               (stride))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawIndexedIndirectCount
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawIndexedIndirectCount - Draw parameters with indirect
+-- parameters, indexed vertices, and draw count
+--
+-- = Description
+--
+-- 'cmdDrawIndexedIndirectCount' behaves similarly to
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect' except that
+-- the draw count is read by the device from a buffer during execution. The
+-- command will read an unsigned 32-bit integer from @countBuffer@ located
+-- at @countBufferOffset@ and use this as the draw count.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08600# For each set /n/
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-vkCmdDrawIndexedIndirectCount-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexedIndirectCount-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexedIndirectCount-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawIndexedIndirectCount-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndexedIndirectCount-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07831# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07832# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07833# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08617# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08618# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08619# If a shader object
+--     that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07834# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08620# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07835# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08621# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07836# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08622# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07837# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08623# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07838# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08624# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07839# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08625# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08626# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07840# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08627# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07841# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08628# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07843# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08629# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07844# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08630# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07845# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08631# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07846# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08632# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07847# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08633# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07848# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08634# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08635# If a shader object
+--     is bound to any graphics stage, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-09232# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08636# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08637# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07878# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08638# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08639# If a shader object
+--     is bound to any graphics stage, 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08640# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08641# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08643# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08644# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08876# If a shader object
+--     is bound to any graphics stage, the current render pass instance
+--     /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362# If
+--     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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09366# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-07880# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07881# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirectCount-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
+--     @rasterizationSamples@ for 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-vkCmdDrawIndexedIndirectCount-pNext-07935# If this command has
+--     been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-09237# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08651# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08652# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08653# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08654# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920# If
+--     a shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08657# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08658# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08659# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07849# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawIndexedIndirectCount-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08878# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08879# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08880# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09116# If a shader object
+--     is bound to any graphics stage or the currently bound graphics
+--     pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input
+--     bindings accessed via vertex input variables declared in the vertex
+--     shader entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02721# For a given vertex
+--     buffer binding, any attribute data fetched /must/ be entirely
+--     contained within the corresponding vertex buffer binding, as
+--     described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07842# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04912# If the bound
+--     graphics pipeline was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913# If the bound
+--     graphics pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08881# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04914# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-Input-07939# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-Input-08734# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-format-08936# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-format-08937# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09203# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08882# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04875# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08883# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-08884#
+--     If a shader object is bound to any graphics stage, and the most
+--     recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08885# There /must/ be no
+--     shader object bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-buffer-02708# If @buffer@ is
 --     non-sparse then it /must/ be bound completely and contiguously to a
diff --git a/src/Vulkan/Core13.hs b/src/Vulkan/Core13.hs
--- a/src/Vulkan/Core13.hs
+++ b/src/Vulkan/Core13.hs
@@ -430,7 +430,16 @@
     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>
     -- binding.
     maxInlineUniformBlockSize :: Word32
-  , -- No documentation found for Nested "VkPhysicalDeviceVulkan13Properties" "maxPerStageDescriptorInlineUniformBlocks"
+  , -- | #limits-maxPerStageDescriptorInlineUniformBlocks#
+    -- @maxPerStageDescriptorInlineUniformBlocks@ is the maximum number of
+    -- inline uniform block bindings that /can/ be accessible to a single
+    -- shader stage in a pipeline layout. Descriptor bindings with a descriptor
+    -- type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'
+    -- count against this limit. Only descriptor bindings in descriptor set
+    -- layouts created without the
+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+    -- bit set count against this limit.
     maxPerStageDescriptorInlineUniformBlocks :: Word32
   , -- | #limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#
     -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to
diff --git a/src/Vulkan/Core13/Enums/AccessFlags2.hs b/src/Vulkan/Core13/Enums/AccessFlags2.hs
--- a/src/Vulkan/Core13/Enums/AccessFlags2.hs
+++ b/src/Vulkan/Core13/Enums/AccessFlags2.hs
@@ -199,6 +199,7 @@
 
 -- | 'ACCESS_2_INDEX_READ_BIT' specifies read access to an index buffer as
 -- part of an indexed drawing command, bound by
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access
 -- occurs in the
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT'
@@ -222,7 +223,7 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment>
 -- within a render pass during subpass shading or fragment shading. Such
 -- access occurs in the
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 -- or
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'
 -- pipeline stage.
@@ -230,8 +231,6 @@
 
 -- | 'ACCESS_2_SHADER_READ_BIT' is equivalent to the logical OR of:
 --
--- -   'ACCESS_2_UNIFORM_READ_BIT'
---
 -- -   'ACCESS_2_SHADER_SAMPLED_READ_BIT'
 --
 -- -   'ACCESS_2_SHADER_STORAGE_READ_BIT'
@@ -249,23 +248,28 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>
 -- (other than
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>),
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
--- or via certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>
--- or
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads>.
--- Such access occurs in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>
+-- or certain
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>
+-- in the
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'
+-- pipeline stage or via
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads>
+-- in the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'
 -- pipeline stage.
 pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000080
 
 -- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>
 -- during a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>
--- or via certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
--- Such access occurs in the
+-- or via certain render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>,
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve>
+-- operations. Such access occurs in the
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'
 -- pipeline stage.
 pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000100
@@ -275,27 +279,32 @@
 -- via
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
 -- or certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
--- Such access occurs in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>
+-- in the
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'
 -- or
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'
--- pipeline stages.
+-- pipeline stages or via
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads>
+-- in the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'
+-- pipeline stage.
 pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000200
 
--- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write
+-- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to
+-- a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
+-- via
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
--- in the
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR'
--- or
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR'
--- pipeline stages or via certain
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>
+-- or certain render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>
+-- operations. Such access occurs in the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'
 -- or
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads>
--- in the
--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR'
--- pipeline stage.
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'
+-- pipeline stages.
 pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000400
 
 -- | 'ACCESS_2_TRANSFER_READ_BIT' specifies read access to an image or buffer
diff --git a/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs b/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs
--- a/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs
+++ b/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs
@@ -63,6 +63,7 @@
                                                                         , FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
                                                                         , FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
                                                                         , FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
+                                                                        , FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT
                                                                         , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
                                                                         , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT
                                                                         , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
@@ -359,8 +360,9 @@
 -- -   'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --     specifies that an image view /can/ be used as a
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
---     An implementation /must/ not set this feature for formats with
---     numeric type other than @*UINT@, or set it as a buffer feature.
+--     An implementation /must/ not set this feature for formats with a
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat numeric format>
+--     other than @UINT@, or set it as a buffer feature.
 --
 -- -   @VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR@ specifies that an
 --     image view with this format /can/ be used as a
@@ -449,6 +451,10 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling>
 --     operations.
 --
+-- -   'FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT' specifies that an
+--     image /can/ be created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'.
+--
 -- The following bits /may/ be set in @bufferFeatures@, specifying that the
 -- features are supported by <VkBuffer.html buffers> or
 -- <VkBufferView.html buffer views> created with the queried
@@ -784,11 +790,17 @@
 -- @optimalTilingFeatures@ or @bufferFeatures@ members.
 pattern FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = FormatFeatureFlagBits2 0x0000004000000000
 
+-- | 'FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT' specifies that an image
+-- /can/ be created with
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'.
+pattern FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = FormatFeatureFlagBits2 0x0000400000000000
+
 -- | 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies
 -- that an image view /can/ be used as a
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
--- An implementation /must/ not set this feature for formats with numeric
--- type other than @*UINT@, or set it as a buffer feature.
+-- An implementation /must/ not set this feature for formats with a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat numeric format>
+-- other than @UINT@, or set it as a buffer feature.
 pattern FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits2 0x0000000040000000
 
 -- | 'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image
@@ -954,6 +966,10 @@
   ,
     ( FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
     , "LINEAR_COLOR_ATTACHMENT_BIT_NV"
+    )
+  ,
+    ( FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT
+    , "HOST_IMAGE_TRANSFER_BIT_EXT"
     )
   ,
     ( FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
diff --git a/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs b/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs
--- a/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs
+++ b/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs
@@ -58,7 +58,7 @@
                                                                         , PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
                                                                         , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
                                                                         , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-                                                                        , PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
+                                                                        , PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
                                                                         , PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
                                                                         , PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
                                                                         , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
@@ -264,14 +264,14 @@
 -- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the
 -- pipeline where early fragment tests (depth and stencil tests before
 -- fragment shading) are performed. This stage also includes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations render pass load operations>
 -- for framebuffer attachments with a depth\/stencil format.
 pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000000000000100
 
 -- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the
 -- pipeline where late fragment tests (depth and stencil tests after
 -- fragment shading) are performed. This stage also includes
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations render pass store operations>
 -- for framebuffer attachments with a depth\/stencil format.
 pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000000000000200
 
@@ -280,10 +280,13 @@
 -- stage includes
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>,
--- multisample resolve operations for framebuffer attachments with a color
--- or depth\/stencil format, and
--- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.
+-- render pass
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>
+-- and
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>
+-- operations for color attachments,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations render pass multisample resolve operations>,
+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.
 pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits2 0x0000000000000400
 
 -- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' specifies the compute shader
@@ -346,10 +349,12 @@
 --
 -- -   'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'
 --
--- -   'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'
+-- -   'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --
 -- -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
 --
+-- -   'PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
+--
 -- -   'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
 -- -   'PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'
@@ -429,9 +434,9 @@
 -- to optimize the ray dispatch.
 pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = PipelineStageFlagBits2 0x0000010000000000
 
--- | 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' specifies the subpass
+-- | 'PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' specifies the subpass
 -- shading shader stage.
-pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PipelineStageFlagBits2 0x0000008000000000
+pattern PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = PipelineStageFlagBits2 0x0000008000000000
 
 -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' specifies the mesh shader stage.
 pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = PipelineStageFlagBits2 0x0000000000100000
@@ -593,8 +598,8 @@
     , "INVOCATION_MASK_BIT_HUAWEI"
     )
   ,
-    ( PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
-    , "SUBPASS_SHADING_BIT_HUAWEI"
+    ( PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
+    , "SUBPASS_SHADER_BIT_HUAWEI"
     )
   ,
     ( PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
diff --git a/src/Vulkan/Core13/Enums/RenderingFlagBits.hs b/src/Vulkan/Core13/Enums/RenderingFlagBits.hs
--- a/src/Vulkan/Core13/Enums/RenderingFlagBits.hs
+++ b/src/Vulkan/Core13/Enums/RenderingFlagBits.hs
@@ -8,6 +8,7 @@
                                                                  , RENDERING_SUSPENDING_BIT
                                                                  , RENDERING_RESUMING_BIT
                                                                  , RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
+                                                                 , RENDERING_CONTENTS_INLINE_BIT_EXT
                                                                  , ..
                                                                  )
                                               ) where
@@ -60,7 +61,10 @@
 
 -- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' specifies that draw
 -- calls for the render pass instance will be recorded in secondary command
--- buffers.
+-- buffers. If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+-- feature is enabled, the draw calls /can/ come from both inline and
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands'.
 pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = RenderingFlagBits 0x00000001
 
 -- | 'RENDERING_SUSPENDING_BIT' specifies that the render pass instance will
@@ -76,6 +80,15 @@
 -- is enabled for the render pass instance.
 pattern RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = RenderingFlagBits 0x00000008
 
+-- | 'RENDERING_CONTENTS_INLINE_BIT_EXT' specifies that draw calls for the
+-- render pass instance /can/ be recorded inline within the current command
+-- buffer. When the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+-- feature is enabled this /can/ be combined with the
+-- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' bit to allow draw
+-- calls to be recorded both inline and in secondary command buffers.
+pattern RENDERING_CONTENTS_INLINE_BIT_EXT = RenderingFlagBits 0x00000010
+
 conNameRenderingFlagBits :: String
 conNameRenderingFlagBits = "RenderingFlagBits"
 
@@ -93,6 +106,10 @@
   ,
     ( RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
     , "ENABLE_LEGACY_DITHERING_BIT_EXT"
+    )
+  ,
+    ( RENDERING_CONTENTS_INLINE_BIT_EXT
+    , "CONTENTS_INLINE_BIT_EXT"
     )
   ]
 
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs
@@ -96,6 +96,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@cullMode@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetCullMode-None-08971# At least one of the following
+--     /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetCullMode-commandBuffer-parameter# @commandBuffer@
@@ -182,6 +200,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@frontFace@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetFrontFace-None-08971# At least one of the following
+--     /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetFrontFace-commandBuffer-parameter# @commandBuffer@
@@ -269,6 +305,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetPrimitiveTopology-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter#
@@ -359,6 +413,22 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdSetViewportWithCount-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- -   #VUID-vkCmdSetViewportWithCount-viewportCount-03394# @viewportCount@
 --     /must/ be between @1@ and
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,
@@ -468,6 +538,22 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdSetScissorWithCount-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- -   #VUID-vkCmdSetScissorWithCount-scissorCount-03397# @scissorCount@
 --     /must/ be between @1@ and
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,
@@ -583,9 +669,12 @@
 -- the offset indicated by @pOffsets@[i] from the start of the buffer
 -- @pBuffers@[i]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the
 -- bound size of the vertex buffer starting from the corresponding elements
--- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that
--- use each of these bindings will use these updated addresses in their
--- address calculations for subsequent drawing commands. If the
+-- of @pBuffers@[i] plus @pOffsets@[i]. If @pSizes@[i] is
+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then the bound size is from
+-- @pBuffers@[i] plus @pOffsets@[i] to the end of the buffer @pBuffers@[i].
+-- All vertex input attributes that use each of these bindings will use
+-- these updated addresses in their address calculations for subsequent
+-- drawing commands. If the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
 -- feature is enabled, elements of @pBuffers@ /can/ be
 -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the
@@ -635,13 +724,14 @@
 --     @firstBinding@ and @bindingCount@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
 --
--- -   #VUID-vkCmdBindVertexBuffers2-pOffsets-03357# All elements of
---     @pOffsets@ /must/ be less than the size of the corresponding element
---     in @pBuffers@
+-- -   #VUID-vkCmdBindVertexBuffers2-pOffsets-03357# If @pSizes@ is not
+--     @NULL@, all elements of @pOffsets@ /must/ be less than the size of
+--     the corresponding element in @pBuffers@
 --
 -- -   #VUID-vkCmdBindVertexBuffers2-pSizes-03358# If @pSizes@ is not
---     @NULL@, all elements of @pOffsets@ plus @pSizes@ /must/ be less than
---     or equal to the size of the corresponding element in @pBuffers@
+--     @NULL@, all elements of @pOffsets@ plus @pSizes@ , where @pSizes@ is
+--     not 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or
+--     equal to the size of the corresponding element in @pBuffers@
 --
 -- -   #VUID-vkCmdBindVertexBuffers2-pBuffers-03359# All elements of
 --     @pBuffers@ /must/ have been created with the
@@ -830,6 +920,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthTestEnable@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthTestEnable-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter#
@@ -914,6 +1022,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthWriteEnable@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthWriteEnable-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter#
@@ -997,6 +1123,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthCompareOp-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter#
@@ -1089,6 +1233,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthBoundsTestEnable@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthBoundsTestEnable-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter#
@@ -1173,6 +1335,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetStencilTestEnable-None-08971# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter#
@@ -1256,6 +1436,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@failOp@,
 -- @passOp@, @depthFailOp@, and @compareOp@ values used to create the
 -- currently active pipeline, for both front and back faces.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetStencilOp-None-08971# At least one of the following
+--     /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs
@@ -52,6 +52,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetRasterizerDiscardEnable-None-08970# At least one of
+--     the following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter#
@@ -138,6 +156,24 @@
 -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasEnable@
 -- value used to create the currently active pipeline.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetDepthBiasEnable-None-08970# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter#
@@ -221,6 +257,24 @@
 -- Otherwise, this state is specified by the
 -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@
 -- value used to create the currently active pipeline.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetPrimitiveRestartEnable-None-08970# At least one of the
+--     following /must/ be true:
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>
+--         feature is enabled
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--         feature is enabled
+--
+--     -   the value of
+--         'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--         used to create the 'Vulkan.Core10.Handles.Instance' parent of
+--         @commandBuffer@ is greater than or equal to Version 1.3
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs
@@ -148,7 +148,16 @@
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>
     -- binding.
     maxInlineUniformBlockSize :: Word32
-  , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockProperties" "maxPerStageDescriptorInlineUniformBlocks"
+  , -- | #extension-limits-maxPerStageDescriptorInlineUniformBlocks#
+    -- @maxPerStageDescriptorInlineUniformBlocks@ is the maximum number of
+    -- inline uniform block bindings that /can/ be accessible to a single
+    -- shader stage in a pipeline layout. Descriptor bindings with a descriptor
+    -- type of
+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'
+    -- count against this limit. Only descriptor bindings in descriptor set
+    -- layouts created without the
+    -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'
+    -- bit set count against this limit.
     maxPerStageDescriptorInlineUniformBlocks :: Word32
   , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#
     -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs
@@ -62,6 +62,7 @@
 import Vulkan.CStruct.Utils (lowerArrayPtr)
 import Vulkan.CStruct.Extends (peekSomeCStruct)
 import Vulkan.CStruct.Extends (pokeSomeCStruct)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (BlitImageCubicWeightsInfoQCOM)
 import Vulkan.Core10.Handles (Buffer)
 import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core10.Handles (CommandBuffer)
@@ -114,12 +115,12 @@
 --
 -- = Description
 --
--- Each source region specified by @pCopyBufferInfo->pname@:pRegions is
--- copied from the source buffer to the destination region of the
--- destination buffer. If any of the specified regions in
--- @pCopyBufferInfo->pname@:srcBuffer overlaps in memory with any of the
--- specified regions in @pCopyBufferInfo->pname@:dstBuffer, values read
--- from those overlapping regions are undefined.
+-- Each source region specified by @pCopyBufferInfo->pRegions@ is copied
+-- from the source buffer to the destination region of the destination
+-- buffer. If any of the specified regions in @pCopyBufferInfo->srcBuffer@
+-- overlaps in memory with any of the specified regions in
+-- @pCopyBufferInfo->dstBuffer@, values read from those overlapping regions
+-- are undefined.
 --
 -- == Valid Usage
 --
@@ -312,7 +313,7 @@
   unsafe
 #endif
   "dynamic" mkVkCmdBlitImage2
-  :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct BlitImageInfo2) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct BlitImageInfo2) -> IO ()
 
 -- | vkCmdBlitImage2 - Copy regions of an image, potentially performing
 -- format conversion,
@@ -386,14 +387,14 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'BlitImageInfo2', 'Vulkan.Core10.Handles.CommandBuffer'
-cmdBlitImage2 :: forall io
-               . (MonadIO io)
+cmdBlitImage2 :: forall a io
+               . (Extendss BlitImageInfo2 a, PokeChain a, MonadIO io)
               => -- | @commandBuffer@ is the command buffer into which the command will be
                  -- recorded.
                  CommandBuffer
               -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2' structure describing
                  -- the blit parameters.
-                 BlitImageInfo2
+                 (BlitImageInfo2 a)
               -> io ()
 cmdBlitImage2 commandBuffer blitImageInfo = liftIO . evalContT $ do
   let vkCmdBlitImage2Ptr = pVkCmdBlitImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
@@ -403,7 +404,7 @@
   pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)
   lift $ traceAroundEvent "vkCmdBlitImage2" (vkCmdBlitImage2'
                                                (commandBufferHandle (commandBuffer))
-                                               pBlitImageInfo)
+                                               (forgetExtensions pBlitImageInfo))
   pure $ ()
 
 
@@ -836,14 +837,14 @@
 --
 -- -   #VUID-VkImageCopy2-apiVersion-07940# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
---     extension is not enabled and
+--     extension is not enabled, and
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
 --     is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@
 --     and @dstSubresource@ /must/ match
 --
 -- -   #VUID-VkImageCopy2-apiVersion-07941# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled and
+--     extension is not enabled, and
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
 --     is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@
 --     and @dstSubresource@ /must/ match
@@ -875,7 +876,9 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
--- 'CopyImageInfo2', 'Vulkan.Core10.FundamentalTypes.Extent3D',
+-- 'CopyImageInfo2',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT',
+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',
 -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',
 -- 'Vulkan.Core10.FundamentalTypes.Offset3D',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
@@ -962,9 +965,26 @@
 -- -   #VUID-VkImageBlit2-aspectMask-00238# The @aspectMask@ member of
 --     @srcSubresource@ and @dstSubresource@ /must/ match
 --
--- -   #VUID-VkImageBlit2-layerCount-00239# The @layerCount@ member of
---     @srcSubresource@ and @dstSubresource@ /must/ match
+-- -   #VUID-VkImageBlit2-layerCount-08800# If neither of the @layerCount@
+--     members of @srcSubresource@ or @dstSubresource@ are
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the
+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/
+--     match
 --
+-- -   #VUID-VkImageBlit2-maintenance5-08799# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, the @layerCount@ member of @srcSubresource@
+--     or @dstSubresource@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-VkImageBlit2-layerCount-08801# If one of the @layerCount@
+--     members of @srcSubresource@ or @dstSubresource@ is
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other
+--     member /must/ be either
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the
+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
+--     used to create the image minus @baseArrayLayer@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkImageBlit2-sType-sType# @sType@ /must/ be
@@ -1105,15 +1125,15 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkBufferImageCopy2-bufferRowLength-00195# @bufferRowLength@
+-- -   #VUID-VkBufferImageCopy2-bufferRowLength-09101# @bufferRowLength@
 --     /must/ be @0@, or greater than or equal to the @width@ member of
 --     @imageExtent@
 --
--- -   #VUID-VkBufferImageCopy2-bufferImageHeight-00196#
+-- -   #VUID-VkBufferImageCopy2-bufferImageHeight-09102#
 --     @bufferImageHeight@ /must/ be @0@, or greater than or equal to the
 --     @height@ member of @imageExtent@
 --
--- -   #VUID-VkBufferImageCopy2-aspectMask-00212# The @aspectMask@ member
+-- -   #VUID-VkBufferImageCopy2-aspectMask-09103# The @aspectMask@ member
 --     of @imageSubresource@ /must/ only have a single bit set
 --
 -- -   #VUID-VkBufferImageCopy2-imageExtent-06659# @imageExtent.width@
@@ -1260,9 +1280,26 @@
 --     @srcSubresource@ and @dstSubresource@ /must/ only contain
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
--- -   #VUID-VkImageResolve2-layerCount-00267# The @layerCount@ member of
---     @srcSubresource@ and @dstSubresource@ /must/ match
+-- -   #VUID-VkImageResolve2-layerCount-08803# If neither of the
+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ are
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the
+--     @layerCount@ member of @srcSubresource@ and @dstSubresource@ /must/
+--     match
 --
+-- -   #VUID-VkImageResolve2-maintenance5-08802# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, the @layerCount@ member of @srcSubresource@
+--     or @dstSubresource@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-VkImageResolve2-layerCount-08804# If one of the @layerCount@
+--     members of @srcSubresource@ or @dstSubresource@ is
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other
+--     member /must/ be either
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the
+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
+--     used to create the image minus @baseArrayLayer@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkImageResolve2-sType-sType# @sType@ /must/ be
@@ -1508,9 +1545,9 @@
 --
 -- -   #VUID-VkCopyImageInfo2-srcImageLayout-01917# @srcImageLayout@ /must/
 --     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
 -- -   #VUID-VkCopyImageInfo2-dstImage-01996# The
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
@@ -1524,9 +1561,9 @@
 --
 -- -   #VUID-VkCopyImageInfo2-dstImageLayout-01395# @dstImageLayout@ /must/
 --     be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
 -- -   #VUID-VkCopyImageInfo2-srcImage-01548# If the
 --     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
@@ -1543,6 +1580,12 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>
 --     for the plane being copied
 --
+-- -   #VUID-VkCopyImageInfo2-srcImage-09247# If the
+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and
+--     @dstImage@ is a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formats compressed image format>,
+--     the formats /must/ have the same texel block extent
+--
 -- -   #VUID-VkCopyImageInfo2-srcImage-00136# The sample count of
 --     @srcImage@ and @dstImage@ /must/ match
 --
@@ -1569,12 +1612,14 @@
 --     then for each element of @pRegions@, @srcSubresource.aspectMask@
 --     /must/ be a single valid
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkCopyImageInfo2-dstImage-08714# If @dstImage@ has a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
 --     then for each element of @pRegions@, @dstSubresource.aspectMask@
 --     /must/ be a single valid
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkCopyImageInfo2-srcImage-01556# If @srcImage@ has a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
@@ -1590,14 +1635,14 @@
 --
 -- -   #VUID-VkCopyImageInfo2-apiVersion-07932# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled,
+--     extension is not enabled, or
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
 --     is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of
 --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each
 --     element of @pRegions@, @srcSubresource.baseArrayLayer@ and
---     @dstSubresource.baseArrayLayer@ /must/ each be @0@, and
+--     @dstSubresource.baseArrayLayer@ /must/ both be @0@, and
 --     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/
---     each be @1@
+--     both be @1@
 --
 -- -   #VUID-VkCopyImageInfo2-srcImage-04443# If @srcImage@ is of type
 --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
@@ -1658,21 +1703,49 @@
 --
 -- -   #VUID-VkCopyImageInfo2-apiVersion-07933# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
---     extension is not enabled,
+--     extension is not enabled, and
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
 --     is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the
 --     same 'Vulkan.Core10.Enums.ImageType.ImageType'
 --
+-- -   #VUID-VkCopyImageInfo2-apiVersion-08969# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
+--     extension is not enabled, and
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@
+--     is less than Vulkan 1.1, @srcImage@ or @dstImage@ is of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @extent.depth@ /must/ be @1@
+--
 -- -   #VUID-VkCopyImageInfo2-srcImage-07743# If @srcImage@ and @dstImage@
---     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', one
---     /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the
---     other /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
+--     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, one /must/ be
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other /must/
+--     be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
 --
--- -   #VUID-VkCopyImageInfo2-srcImage-07744# If @srcImage@ and @dstImage@
---     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', the
---     @layerCount@ member of @srcSubresource@ and @dstSubresource@ in each
---     element of @pRegions@ /must/ match
+-- -   #VUID-VkCopyImageInfo2-srcImage-08793# If @srcImage@ and @dstImage@
+--     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', for each
+--     element of @pRegions@, if neither of the @layerCount@ members of
+--     @srcSubresource@ or @dstSubresource@ are
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the
+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/
+--     match
 --
+-- -   #VUID-VkCopyImageInfo2-maintenance5-08792# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, the @layerCount@ member of @srcSubresource@
+--     or @dstSubresource@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-VkCopyImageInfo2-srcImage-08794# If @srcImage@ and @dstImage@
+--     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', and one of
+--     the @layerCount@ members of @srcSubresource@ or @dstSubresource@ is
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other
+--     member /must/ be either
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the
+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'
+--     used to create the image minus @baseArrayLayer@
+--
 -- -   #VUID-VkCopyImageInfo2-srcImage-01790# If @srcImage@ and @dstImage@
 --     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then
 --     for each element of @pRegions@, @extent.depth@ /must/ be @1@
@@ -1834,9 +1907,12 @@
 --
 -- -   #VUID-VkCopyImageInfo2-srcSubresource-07968# The
 --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
 --
 -- -   #VUID-VkCopyImageInfo2-srcImage-07969# @srcImage@ /must/ not have
 --     been created with @flags@ containing
@@ -1854,9 +1930,12 @@
 --
 -- -   #VUID-VkCopyImageInfo2-dstSubresource-07968# The
 --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
+--     each element of @pRegions@ , if @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
 --
 -- -   #VUID-VkCopyImageInfo2-dstImage-07969# @dstImage@ /must/ not have
 --     been created with @flags@ containing
@@ -2095,15 +2174,21 @@
 --
 -- -   #VUID-VkBlitImageInfo2-srcSubresource-01707# The
 --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
 --
 -- -   #VUID-VkBlitImageInfo2-dstSubresource-01708# The
 --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
 --
 -- -   #VUID-VkBlitImageInfo2-dstImage-02545# @dstImage@ and @srcImage@
 --     /must/ not have been created with @flags@ containing
@@ -2194,13 +2279,24 @@
 --     in its @pNext@ chain, then @srcImage@ /must/ not have a
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
 --
+-- -   #VUID-VkBlitImageInfo2-filter-09204# If @filter@ is
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' and if the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled then the cubic weights /must/ be
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkBlitImageInfo2-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2'
 --
--- -   #VUID-VkBlitImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@
+-- -   #VUID-VkBlitImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@ or a
+--     pointer to a valid instance of
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.BlitImageCubicWeightsInfoQCOM'
 --
+-- -   #VUID-VkBlitImageInfo2-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkBlitImageInfo2-srcImage-parameter# @srcImage@ /must/ be a
 --     valid 'Vulkan.Core10.Handles.Image' handle
 --
@@ -2237,8 +2333,10 @@
 -- 'ImageBlit2', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2',
 -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'
-data BlitImageInfo2 = BlitImageInfo2
-  { -- | @srcImage@ is the source image.
+data BlitImageInfo2 (es :: [Type]) = BlitImageInfo2
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @srcImage@ is the source image.
     srcImage :: Image
   , -- | @srcImageLayout@ is the layout of the source image subresources for the
     -- blit.
@@ -2257,15 +2355,26 @@
   }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (BlitImageInfo2)
+deriving instance Generic (BlitImageInfo2 (es :: [Type]))
 #endif
-deriving instance Show BlitImageInfo2
+deriving instance Show (Chain es) => Show (BlitImageInfo2 es)
 
-instance ToCStruct BlitImageInfo2 where
+instance Extensible BlitImageInfo2 where
+  extensibleTypeName = "BlitImageInfo2"
+  setNext BlitImageInfo2{..} next' = BlitImageInfo2{next = next', ..}
+  getNext BlitImageInfo2{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends BlitImageInfo2 e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @BlitImageCubicWeightsInfoQCOM = Just f
+    | otherwise = Nothing
+
+instance ( Extendss BlitImageInfo2 es
+         , PokeChain es ) => ToCStruct (BlitImageInfo2 es) where
   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
   pokeCStruct p BlitImageInfo2{..} f = evalContT $ do
     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
     lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)
     lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)
     lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)
@@ -2278,18 +2387,22 @@
     lift $ f
   cStructSize = 64
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Image)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)
+    lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)
+    lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)
+    lift $ f
 
-instance FromCStruct BlitImageInfo2 where
+instance ( Extendss BlitImageInfo2 es
+         , PeekChain es ) => FromCStruct (BlitImageInfo2 es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))
     srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
     dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))
@@ -2299,10 +2412,17 @@
     pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2 _)))))
     filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))
     pure $ BlitImageInfo2
-             srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'
+             next
+             srcImage
+             srcImageLayout
+             dstImage
+             dstImageLayout
+             pRegions'
+             filter'
 
-instance Zero BlitImageInfo2 where
+instance es ~ '[] => Zero (BlitImageInfo2 es) where
   zero = BlitImageInfo2
+           ()
            zero
            zero
            zero
@@ -2316,11 +2436,11 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkCopyBufferToImageInfo2-pRegions-04565# If the image region
---     specified by each element of @pRegions@ does not contain
+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-04565# The image region
+--     specified by each element of @pRegions@ that does not contain
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, it /must/ be a region that is contained within
---     the specified @imageSubresource@ of @dstImage@
+--     in its @pNext@ chain /must/ be contained within the specified
+--     @imageSubresource@ of @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image
 --     region specified by each element of @pRegions@ contains
@@ -2383,9 +2503,9 @@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396#
 --     @dstImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07931# If
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted VK_EXT_depth_range_unrestricted>
@@ -2405,9 +2525,12 @@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-imageSubresource-07968# The
 --     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
+--     each element of @pRegions@ , if @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07969# @dstImage@ /must/ not
 --     have been created with @flags@ containing
@@ -2422,7 +2545,7 @@
 --     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
 --     @imageExtent.height@ /must/ be @1@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-00200# For each element
+-- -   #VUID-VkCopyBufferToImageInfo2-imageOffset-09104# For each element
 --     of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
 --     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the depth of the specified @imageSubresource@
@@ -2434,89 +2557,77 @@
 --     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
 --     /must/ be @1@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203# For each
---     element of @pRegions@, @bufferRowLength@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204# For each
---     element of @pRegions@, @bufferImageHeight@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
---
--- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07274# For each element of
+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-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>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07275# For each element of
+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07275# For each element of
 --     @pRegions@, @imageOffset.y@ /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 height>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07276# For each element of
+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07276# For each element of
 --     @pRegions@, @imageOffset.z@ /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 depth>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-imageExtent-00207# For each element
---     of @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-00207# For each element of
+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
 --     not equal the width of the subresource specified by
 --     @srcSubresource@, @extent.width@ /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>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-imageExtent-00208# For each element
---     of @pRegions@, if the sum of @imageOffset.y@ and @extent.height@
---     does not equal the height of the subresource specified by
+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-00208# For each element of
+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
+--     not equal the height of the subresource specified by
 --     @srcSubresource@, @extent.height@ /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 height>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-imageExtent-00209# For each element
---     of @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
+-- -   #VUID-VkCopyBufferToImageInfo2-dstImage-00209# For each element of
+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
 --     not equal the depth of the subresource specified by
 --     @srcSubresource@, @extent.depth@ /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 depth>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-aspectMask-00211# For each element of
---     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects
---     present in @dstImage@
+-- -   #VUID-VkCopyBufferToImageInfo2-imageSubresource-09105# For each
+--     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify
+--     aspects present in @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07981# If @dstImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>
---     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'
---     or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'
---
--- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07982# If @dstImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
 --     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     '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'
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07983# If @dstImage@ is of
 --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
 --     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
 --     @imageSubresource.layerCount@ /must/ be @1@
 --
--- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07277# For each element of
---     @pRegions@, @bufferRowLength@ divided by the
+-- -   #VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106# For each
+--     element of @pRegions@, @bufferRowLength@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107# For each
+--     element of @pRegions@, @bufferImageHeight@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108# For each
+--     element of @pRegions@, @bufferRowLength@ divided by the
+--     <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 @dstImage@ /must/ be
 --     less than or equal to 231-1
 --
 -- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07975# If @dstImage@ does
---     not have either a depth\/stencil or a
+--     not have either a depth\/stencil format 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
@@ -2652,10 +2763,10 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkCopyImageToBufferInfo2-pRegions-04566# If the image region
---     specified by each element of @pRegions@ does not contain
+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-04566# The image region
+--     specified by each element of @pRegions@ that does not contain
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, it /must/ be contained within the specified
+--     in its @pNext@ chain /must/ be contained within the specified
 --     @imageSubresource@ of @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image
@@ -2719,9 +2830,9 @@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397#
 --     @srcImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07966# If @srcImage@ is
 --     non-sparse then the image or the specified /disjoint/ plane /must/
@@ -2735,9 +2846,12 @@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-imageSubresource-07968# The
 --     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
+--     each element of @pRegions@ , if @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07969# @srcImage@ /must/ not
 --     have been created with @flags@ containing
@@ -2752,7 +2866,7 @@
 --     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
 --     @imageExtent.height@ /must/ be @1@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-00200# For each element
+-- -   #VUID-VkCopyImageToBufferInfo2-imageOffset-09104# For each element
 --     of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
 --     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the depth of the specified @imageSubresource@
@@ -2764,89 +2878,77 @@
 --     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
 --     /must/ be @1@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203# For each
---     element of @pRegions@, @bufferRowLength@ /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>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204# For each
---     element of @pRegions@, @bufferImageHeight@ /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 height>
---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
---
--- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07274# For each element of
+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-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>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07275# For each element of
+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07275# For each element of
 --     @pRegions@, @imageOffset.y@ /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 height>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07276# For each element of
+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07276# For each element of
 --     @pRegions@, @imageOffset.z@ /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 depth>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-imageExtent-00207# For each element
---     of @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00207# For each element of
+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
 --     not equal the width of the subresource specified by
 --     @srcSubresource@, @extent.width@ /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>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-imageExtent-00208# For each element
---     of @pRegions@, if the sum of @imageOffset.y@ and @extent.height@
---     does not equal the height of the subresource specified by
+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00208# For each element of
+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
+--     not equal the height of the subresource specified by
 --     @srcSubresource@, @extent.height@ /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 height>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-imageExtent-00209# For each element
---     of @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
+-- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00209# For each element of
+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
 --     not equal the depth of the subresource specified by
 --     @srcSubresource@, @extent.depth@ /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 depth>
 --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-aspectMask-00211# For each element of
---     @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects
---     present in @srcImage@
+-- -   #VUID-VkCopyImageToBufferInfo2-imageSubresource-09105# For each
+--     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify
+--     aspects present in @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07981# If @srcImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>
---     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'
---     or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'
---
--- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07982# If @srcImage@ has a
---     'Vulkan.Core10.Enums.Format.Format' with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
 --     then for each element of @pRegions@, @imageSubresource.aspectMask@
---     /must/ be
---     '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'
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
 -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07983# If @srcImage@ is of
 --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
 --     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
 --     @imageSubresource.layerCount@ /must/ be @1@
 --
--- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07277# For each element of
---     @pRegions@, @bufferRowLength@ divided by the
+-- -   #VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106# For each
+--     element of @pRegions@, @bufferRowLength@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107# For each
+--     element of @pRegions@, @bufferImageHeight@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108# For each
+--     element of @pRegions@, @bufferRowLength@ divided by the
+--     <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-srcImage-07975# If @srcImage@ does
---     not have either a depth\/stencil or a
+--     not have either a depth\/stencil format 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
@@ -3052,15 +3154,21 @@
 --
 -- -   #VUID-VkResolveImageInfo2-srcSubresource-01711# The
 --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @srcImage@ was created
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
 --
 -- -   #VUID-VkResolveImageInfo2-dstSubresource-01712# The
 --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
---     each element of @pRegions@ /must/ be less than or equal to the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @dstImage@ was created
+--     each element of @pRegions@ , if @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
 --
 -- -   #VUID-VkResolveImageInfo2-dstImage-02546# @dstImage@ and @srcImage@
 --     /must/ not have been created with @flags@ containing
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot
@@ -20,12 +20,15 @@
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-data BlitImageInfo2
+type role BlitImageInfo2 nominal
+data BlitImageInfo2 (es :: [Type])
 
-instance ToCStruct BlitImageInfo2
-instance Show BlitImageInfo2
+instance ( Extendss BlitImageInfo2 es
+         , PokeChain es ) => ToCStruct (BlitImageInfo2 es)
+instance Show (Chain es) => Show (BlitImageInfo2 es)
 
-instance FromCStruct BlitImageInfo2
+instance ( Extendss BlitImageInfo2 es
+         , PeekChain es ) => FromCStruct (BlitImageInfo2 es)
 
 
 data BufferCopy2
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs
@@ -122,8 +122,9 @@
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkCmdBeginRendering-commandBuffer-06068# If @commandBuffer@ is
---     a secondary command buffer, @pRenderingInfo->flags@ /must/ not
---     include
+--     a secondary command buffer, and the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--     feature is not enabled, @pRenderingInfo->flags@ /must/ not include
 --     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'
 --
 -- == Valid Usage (Implicit)
@@ -297,11 +298,11 @@
 -- = Description
 --
 -- When a pipeline is created without a 'Vulkan.Core10.Handles.RenderPass',
--- if this structure is present in the @pNext@ chain of
--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it specifies the
--- view mask and format of attachments used for rendering. If this
--- structure is not specified, and the pipeline does not include a
--- 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and
+-- if the @pNext@ chain of
+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' includes this
+-- structure, it specifies the view mask and format of attachments used for
+-- rendering. If this structure is not specified, and the pipeline does not
+-- include a 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and
 -- @colorAttachmentCount@ are @0@, and @depthAttachmentFormat@ and
 -- @stencilAttachmentFormat@ are
 -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. If a graphics pipeline is
@@ -315,6 +316,13 @@
 -- indicate that an attachment /can/ be used - but it is still valid to set
 -- the attachment to @NULL@ when beginning rendering.
 --
+-- If the render pass is going to be used with an external format resolve
+-- attachment, a
+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+-- structure /must/ also be included in the @pNext@ chain of
+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', defining the
+-- external format of the resolve attachment that will be used.
+--
 -- == Valid Usage (Implicit)
 --
 -- = See Also
@@ -416,8 +424,9 @@
 -- decorated with a @Location@ value of __X__, then it uses the attachment
 -- provided in @pColorAttachments@[__X__]. If the @imageView@ member of any
 -- element of @pColorAttachments@ is
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', writes to the corresponding
--- location by a fragment are discarded.
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @resolveMode@ is not
+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+-- writes to the corresponding location by a fragment are discarded.
 --
 -- == Valid Usage
 --
@@ -433,6 +442,14 @@
 --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been
 --     created with the same @sampleCount@
 --
+-- -   #VUID-VkRenderingInfo-None-08994# If
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@
+--     is 0, @renderArea.extent.width@ /must/ be greater than 0
+--
+-- -   #VUID-VkRenderingInfo-None-08995# If
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@
+--     is 0, @renderArea.extent.height@ /must/ be greater than 0
+--
 -- -   #VUID-VkRenderingInfo-imageView-06858# If
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>
 --     is enabled, then all attachments referenced by @imageView@ members
@@ -927,6 +944,41 @@
 --     @renderArea@ /must/ specify a render area that includes the union of
 --     all per view render areas.
 --
+-- -   #VUID-VkRenderingInfo-None-09044# Valid attachments specified by
+--     this structure /must/ not be bound to memory locations that are
+--     bound to any other valid attachments specified by this structure
+--
+-- -   #VUID-VkRenderingInfo-flags-09381# If @flags@ includes
+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkRenderingInfo-pDepthAttachment-09318#
+--     @pDepthAttachment->resolveMode@ /must/ not be
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--
+-- -   #VUID-VkRenderingInfo-pStencilAttachment-09319#
+--     @pStencilAttachment->resolveMode@ /must/ not be
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--
+-- -   #VUID-VkRenderingInfo-colorAttachmentCount-09320# If
+--     @colorAttachmentCount@ is not @1@, the @resolveMode@ member of any
+--     element of @pColorAttachments@ /must/ not be
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--
+-- -   #VUID-VkRenderingInfo-resolveMode-09321# If the @resolveMode@ of any
+--     element of @pColorAttachments@ is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@
+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkRenderingInfo-resolveMode-09322# If the @resolveMode@ of any
+--     element of @pColorAttachments@ is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkRenderingInfo-sType-sType# @sType@ /must/ be
@@ -1073,24 +1125,30 @@
 -- Values in @imageView@ are loaded and stored according to the values of
 -- @loadOp@ and @storeOp@, within the render area for each device specified
 -- in 'RenderingInfo'. If @imageView@ is
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', other members of this
--- structure are ignored; writes to this attachment will be discarded, and
--- no load, store, or resolve operations will be performed.
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @resolveMode@ is not
+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+-- other members of this structure are ignored; writes to this attachment
+-- will be discarded, and no
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load>,
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store>,
+-- or
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations multisample resolve>
+-- operations will be performed.
 --
 -- If @resolveMode@ is
 -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then
 -- @resolveImageView@ is ignored. If @resolveMode@ is not
 -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and
--- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
--- values in @resolveImageView@ within the render area become undefined
--- once rendering begins. Only values in the aspect corresponding to the
--- use of this attachment become undefined (the depth aspect if this
--- attachment is used as 'RenderingInfo'::@pDepthAttachment@, and the
--- stencil aspect if it is used as @pStencilAttachment@).
---
--- At the end of rendering, the values written to each pixel location in
--- @imageView@ will be resolved according to @resolveMode@ and stored into
--- the same location in @resolveImageView@.
+-- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations render pass multisample resolve operation>
+-- is defined for the attachment subresource. If @resolveMode@ is
+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+-- and the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE', values are only
+-- undefined once
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load operations>
+-- have completed.
 --
 -- Note
 --
@@ -1110,6 +1168,18 @@
 -- Image contents at the end of a suspended render pass instance remain
 -- defined for access by a resuming render pass instance.
 --
+-- If the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE', and @resolveMode@ is
+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+-- values in the color attachment will be loaded from the resolve
+-- attachment at the start of rendering, and /may/ also be reloaded any
+-- time after a resolve occurs or the resolve attachment is written to; if
+-- this occurs it /must/ happen-before any writes to the color attachment
+-- are performed which happen-after the resolve that triggers this. If any
+-- color component in the external format is subsampled, values will be
+-- read from the nearest sample in the image when they are loaded.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkRenderingAttachmentInfo-imageView-06129# If @imageView@ is
@@ -1246,6 +1316,68 @@
 --     @resolveImageLayout@ /must/ not be
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'
 --
+-- -   #VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323# If
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     is not enabled, @resolveMode@ /must/ not be
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--
+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09324# If @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     @resolveImageView@ /must/ be a valid image view
+--
+-- -   #VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     property is 'Vulkan.Core10.FundamentalTypes.TRUE' and @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     @resolveImageView@ /must/ have been created with an image with a
+--     @samples@ value of
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09326# If @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     @resolveImageView@ /must/ have been created with an external format
+--     specified by
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--
+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09327# If @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     @resolveImageView@ /must/ have been created with a
+--     @subresourceRange.layerCount@ of @1@
+--
+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09328# If @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', @imageView@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09329# If @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @imageView@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.ImageView'
+--
+-- -   #VUID-VkRenderingAttachmentInfo-resolveMode-09330# If @resolveMode@
+--     is
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @imageView@ /must/ have a
+--     format equal to the value of
+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@
+--     as returned by a call to
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID'
+--     for the Android hardware buffer that was used to create
+--     @resolveImageView@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkRenderingAttachmentInfo-sType-sType# @sType@ /must/ be
@@ -1311,21 +1443,24 @@
     imageLayout :: ImageLayout
   , -- | @resolveMode@ is a
     -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value
-    -- defining how multisampled data written to @imageView@ will be resolved.
+    -- defining how data written to @imageView@ will be resolved into
+    -- @resolveImageView@.
     resolveMode :: ResolveModeFlagBits
-  , -- | @resolveImageView@ is an image view used to write resolved multisample
-    -- data at the end of rendering.
+  , -- | @resolveImageView@ is an image view used to write resolved data at the
+    -- end of rendering.
     resolveImageView :: ImageView
   , -- | @resolveImageLayout@ is the layout that @resolveImageView@ will be in
     -- during rendering.
     resolveImageLayout :: ImageLayout
   , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'
-    -- value specifying how the contents of @imageView@ are treated at the
-    -- start of the render pass instance.
+    -- value defining the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operations load operation>
+    -- for the attachment.
     loadOp :: AttachmentLoadOp
   , -- | @storeOp@ is a 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'
-    -- value specifying how the contents of @imageView@ are treated at the end
-    -- of the render pass instance.
+    -- value defining the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operations store operation>
+    -- for the attachment.
     storeOp :: AttachmentStoreOp
   , -- | @clearValue@ is a 'Vulkan.Core10.CommandBufferBuilding.ClearValue'
     -- structure defining values used to clear @imageView@ when @loadOp@ is
@@ -1470,7 +1605,8 @@
 -- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of
 -- @pColorAttachmentFormats@ is
 -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the
--- corresponding attachment is unused within the render pass.
+-- corresponding attachment is unused within the render pass and writes to
+-- those attachments are discarded.
 --
 -- == Valid Usage
 --
@@ -1498,14 +1634,14 @@
 --     that include
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
 --
--- -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492#
+-- -   #VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492#
 --     If any element of @pColorAttachmentFormats@ is not
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format
 --     with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>
 --     that include
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT',
---     or
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--     , or
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
 --     if the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs
@@ -312,7 +312,7 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416# The
+-- -   #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416# The
 --     @pCreateInfo@::@pNext@ chain /must/ not contain a
 --     'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'
 --     structure
@@ -328,14 +328,20 @@
 --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
 --     structure with non-zero @externalFormat@
 --
--- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If
+-- -   #VUID-VkDeviceImageMemoryRequirements-pNext-08962# Applications also
+--     /must/ not call 'getDeviceImageMemoryRequirements' with a
+--     'Vulkan.Core10.Image.ImageCreateInfo' whose @pNext@ chain includes a
+--     'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX'
+--     structure with non-zero @externalFormat@
+--
+-- -   #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417# If
 --     @pCreateInfo@::@format@ specifies a /multi-planar/ format and
 --     @pCreateInfo@::@flags@ has
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'
 --     set then @planeAspect@ /must/ not be
 --     'Vulkan.Extensions.VK_KHR_maintenance4.IMAGE_ASPECT_NONE_KHR'
 --
--- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419# If
+-- -   #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419# If
 --     @pCreateInfo@::@flags@ has
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'
 --     set and if the @pCreateInfo@::@tiling@ is
@@ -343,8 +349,9 @@
 --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then
 --     @planeAspect@ /must/ be a single valid
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
 --
--- -   #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420# If
+-- -   #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420# If
 --     @pCreateInfo@::@tiling@ is
 --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
 --     then @planeAspect@ /must/ be a single valid /memory plane/ for the
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs
@@ -97,11 +97,14 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT)
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core10.Handles (Fence(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT)
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.ImageView (ImageSubresourceRange)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySubmissionPresentIdNV)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)
@@ -224,6 +227,18 @@
 -- -   #VUID-vkCmdSetEvent2-dependencyFlags-03825# The @dependencyFlags@
 --     member of @pDependencyInfo@ /must/ be @0@
 --
+-- -   #VUID-vkCmdSetEvent2-srcStageMask-09391# The @srcStageMask@ member
+--     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or
+--     @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ not
+--     include
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'
+--
+-- -   #VUID-vkCmdSetEvent2-dstStageMask-09392# The @dstStageMask@ member
+--     of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or
+--     @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ not
+--     include
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'
+--
 -- -   #VUID-vkCmdSetEvent2-commandBuffer-03826# The current device mask of
 --     @commandBuffer@ /must/ include exactly one physical device
 --
@@ -397,14 +412,14 @@
 -- -   #VUID-vkCmdResetEvent2-stageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-vkCmdResetEvent2-stageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-vkCmdResetEvent2-rayTracingPipeline-07946# If neither the
+-- -   #VUID-vkCmdResetEvent2-stageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -827,8 +842,23 @@
 --     'Vulkan.Core10.Handles.RenderPass' object, the @image@ member of any
 --     image memory barrier included in this command /must/ be an
 --     attachment used in the current subpass both as an input attachment,
---     and as either a color or depth\/stencil attachment
+--     and as either a color, color resolve, or depth\/stencil attachment
 --
+-- -   #VUID-vkCmdPipelineBarrier2-image-09373# If 'cmdPipelineBarrier2' is
+--     called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of
+--     any image memory barrier is a color resolve attachment, the
+--     corresponding color attachment /must/ be
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'
+--
+-- -   #VUID-vkCmdPipelineBarrier2-image-09374# If 'cmdPipelineBarrier2' is
+--     called within a render pass instance using a
+--     'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of
+--     any image memory barrier is a color resolve attachment, it /must/
+--     have been created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value
+--
 -- -   #VUID-vkCmdPipelineBarrier2-oldLayout-01181# If
 --     'cmdPipelineBarrier2' is called within a render pass instance, the
 --     @oldLayout@ and @newLayout@ members of any image memory barrier
@@ -1059,20 +1089,15 @@
 --     member of any element of @pSubmits@, there /must/ be no other queues
 --     waiting on the same semaphore
 --
--- -   #VUID-vkQueueSubmit2-semaphore-03872# The @semaphore@ member of any
---     element of the @pWaitSemaphoreInfos@ member of any element of
---     @pSubmits@ /must/ be semaphores that are signaled, or have
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
---     previously submitted for execution
---
--- -   #VUID-vkQueueSubmit2-semaphore-03873# Any @semaphore@ member of any
+-- -   #VUID-vkQueueSubmit2-semaphore-03873# The @semaphore@ member of any
 --     element of the @pWaitSemaphoreInfos@ member of any element of
 --     @pSubmits@ that was created with a
 --     'Vulkan.Extensions.VK_KHR_timeline_semaphore.SemaphoreTypeKHR' of
 --     'Vulkan.Extensions.VK_KHR_timeline_semaphore.SEMAPHORE_TYPE_BINARY_KHR'
 --     /must/ reference a semaphore signal operation that has been
---     submitted for execution and any semaphore signal operations on which
---     it depends (if any) /must/ have also been submitted for execution
+--     submitted for execution and any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
+--     on which it depends /must/ have also been submitted for execution
 --
 -- -   #VUID-vkQueueSubmit2-commandBuffer-03874# The @commandBuffer@ member
 --     of any element of the @pCommandBufferInfos@ member of any element of
@@ -1169,6 +1194,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- == Return Codes
@@ -1245,22 +1271,36 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
 -- includes only the timestamp write operation.
 --
--- When the timestamp value is written, the availability status of the
--- query is set to available.
---
 -- Note
 --
--- If an implementation is unable to detect completion and latch the timer
--- immediately after @stage@ has completed, it /may/ instead do so at any
--- logically later stage.
+-- Implementations may write the timestamp at any stage that is
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically later>
+-- than @stage@.
 --
--- Comparisons between timestamps are not meaningful if the timestamps are
--- written by commands submitted to different queues.
+-- Any timestamp write that
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
+-- another timestamp write in the same submission /must/ not have a lower
+-- value unless its value overflows the maximum supported integer bit width
+-- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends
+-- to timestamp writes across all submissions on the same logical device:
+-- any timestamp write that
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
+-- another /must/ not have a lower value unless its value overflows the
+-- maximum supported integer bit width of the query. Timestamps written by
+-- this command /must/ be in the
+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'
+-- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp
+-- value /must/ wrap back to zero.
 --
 -- Note
 --
--- An example of such a comparison is subtracting an older timestamp from a
--- newer one to determine the execution time of a sequence of commands.
+-- Comparisons between timestamps should be done between timestamps where
+-- they are guaranteed to not decrease. For example, subtracting an older
+-- timestamp from a newer one to determine the execution time of a sequence
+-- of commands is only a reliable measurement if the two timestamp writes
+-- were performed in the same submission, or if the writes were performed
+-- on the same logical device and @VK_EXT_calibrated_timestamps@ is
+-- enabled.
 --
 -- If 'cmdWriteTimestamp2' is called while executing a render pass instance
 -- that has multiview enabled, the timestamp uses N consecutive query
@@ -1333,14 +1373,14 @@
 -- -   #VUID-vkCmdWriteTimestamp2-stage-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-vkCmdWriteTimestamp2-stage-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @stage@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07946# If neither the
+-- -   #VUID-vkCmdWriteTimestamp2-stage-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -1362,9 +1402,6 @@
 --     been created with a @queryType@ of
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'
 --
--- -   #VUID-vkCmdWriteTimestamp2-queryPool-03862# The query identified by
---     @queryPool@ and @query@ /must/ be /unavailable/
---
 -- -   #VUID-vkCmdWriteTimestamp2-timestampValidBits-03863# The command
 --     pool’s queue family /must/ support a non-zero @timestampValidBits@
 --
@@ -1372,7 +1409,7 @@
 --     the number of queries in @queryPool@
 --
 -- -   #VUID-vkCmdWriteTimestamp2-None-03864# All queries used by the
---     command /must/ be unavailable
+--     command /must/ be /unavailable/
 --
 -- -   #VUID-vkCmdWriteTimestamp2-query-03865# If 'cmdWriteTimestamp2' is
 --     called within a render pass instance, the sum of @query@ and the
@@ -1530,14 +1567,14 @@
 -- -   #VUID-VkMemoryBarrier2-srcStageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkMemoryBarrier2-srcStageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkMemoryBarrier2-rayTracingPipeline-07946# If neither the
+-- -   #VUID-VkMemoryBarrier2-srcStageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -1578,7 +1615,7 @@
 --     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',
 --     @srcStageMask@ /must/ include
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',
 --     or
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
@@ -1694,8 +1731,8 @@
 --     '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_ACCELERATION_STRUCTURE_COPY_BIT_KHR',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
 --
 -- -   #VUID-VkMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@
@@ -1925,14 +1962,14 @@
 -- -   #VUID-VkMemoryBarrier2-dstStageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkMemoryBarrier2-dstStageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkMemoryBarrier2-rayTracingPipeline-07946# If neither the
+-- -   #VUID-VkMemoryBarrier2-dstStageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -1973,7 +2010,7 @@
 --     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',
 --     @dstStageMask@ /must/ include
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',
 --     or
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
@@ -2089,8 +2126,8 @@
 --     '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_ACCELERATION_STRUCTURE_COPY_BIT_KHR',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
 --
 -- -   #VUID-VkMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@
@@ -2500,14 +2537,14 @@
 -- -   #VUID-VkImageMemoryBarrier2-srcStageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkImageMemoryBarrier2-srcStageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946# If neither the
+-- -   #VUID-VkImageMemoryBarrier2-srcStageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -2548,7 +2585,7 @@
 --     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',
 --     @srcStageMask@ /must/ include
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',
 --     or
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
@@ -2664,8 +2701,8 @@
 --     '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_ACCELERATION_STRUCTURE_COPY_BIT_KHR',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
 --
 -- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@
@@ -2895,14 +2932,14 @@
 -- -   #VUID-VkImageMemoryBarrier2-dstStageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkImageMemoryBarrier2-dstStageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946# If neither the
+-- -   #VUID-VkImageMemoryBarrier2-dstStageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -2943,7 +2980,7 @@
 --     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',
 --     @dstStageMask@ /must/ include
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',
 --     or
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
@@ -3059,8 +3096,8 @@
 --     '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_ACCELERATION_STRUCTURE_COPY_BIT_KHR',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
 --
 -- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@
@@ -3437,30 +3474,56 @@
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
 --     set
 --
--- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If
---     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
---     least one /must/ not be a special queue family reserved for external
---     memory ownership transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
---
--- -   #VUID-VkImageMemoryBarrier2-image-04071# If @image@ was created with
+-- -   #VUID-VkImageMemoryBarrier2-image-09117# If @image@ was created with
 --     a sharing mode of
---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and
---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the
---     special queue family values reserved for external memory transfers,
---     the other /must/ be
---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'
+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
+--     @srcQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
--- -   #VUID-VkImageMemoryBarrier2-image-04072# If @image@ was created with
+-- -   #VUID-VkImageMemoryBarrier2-image-09118# If @image@ was created with
 --     a sharing mode of
 --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
 --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid
---     queue families, or one of the special queue family values reserved
---     for external memory transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
+--     @dstQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If
+--     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
+--     least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/
+--     not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkImageMemoryBarrier2-None-09119# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkImageMemoryBarrier2-None-09120# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
 -- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120# 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>
@@ -3567,17 +3630,23 @@
 --     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
+-- -   #VUID-VkImageMemoryBarrier2-image-09241# If @image@ has a color
+--     format that is single-plane, then the @aspectMask@ member of
+--     @subresourceRange@ /must/ be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
+-- -   #VUID-VkImageMemoryBarrier2-image-09242# If @image@ has a color
+--     format and 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 at least
 --     one
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
---     or 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--     bit or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
 -- -   #VUID-VkImageMemoryBarrier2-image-03319# If @image@ has a
 --     depth\/stencil format with both depth and stencil and the
@@ -3633,8 +3702,11 @@
 -- -   #VUID-VkImageMemoryBarrier2-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2'
 --
--- -   #VUID-VkImageMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@ or
---     a pointer to a valid instance of
+-- -   #VUID-VkImageMemoryBarrier2-pNext-pNext# Each @pNext@ member of any
+--     structure (including this one) in the @pNext@ chain /must/ be either
+--     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT'
+--     or
 --     'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT'
 --
 -- -   #VUID-VkImageMemoryBarrier2-sType-unique# The @sType@ value of each
@@ -3733,6 +3805,7 @@
   getNext ImageMemoryBarrier2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f
     | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f
     | otherwise = Nothing
 
@@ -3917,15 +3990,14 @@
 -- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @srcStageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @srcStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946# If neither
---     the
+-- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -3966,7 +4038,7 @@
 --     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',
 --     @srcStageMask@ /must/ include
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',
 --     or
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
@@ -4082,8 +4154,8 @@
 --     '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_ACCELERATION_STRUCTURE_COPY_BIT_KHR',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@
@@ -4313,15 +4385,14 @@
 -- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @dstStageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @dstStageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946# If neither
---     the
+-- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -4362,7 +4433,7 @@
 --     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',
 --     @dstStageMask@ /must/ include
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',
 --     or
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
@@ -4478,8 +4549,8 @@
 --     '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_ACCELERATION_STRUCTURE_COPY_BIT_KHR',
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@
@@ -4677,30 +4748,56 @@
 --     then it /must/ be bound completely and contiguously to a single
 --     'Vulkan.Core10.Handles.DeviceMemory' object
 --
--- -   #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087# If
---     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
---     least one /must/ not be a special queue family reserved for external
---     memory ownership transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
---
--- -   #VUID-VkBufferMemoryBarrier2-buffer-04088# If @buffer@ was created
+-- -   #VUID-VkBufferMemoryBarrier2-buffer-09095# If @buffer@ was created
 --     with a sharing mode of
---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and
---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the
---     special queue family values reserved for external memory transfers,
---     the other /must/ be
---     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'
+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
+--     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
+--     @srcQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
--- -   #VUID-VkBufferMemoryBarrier2-buffer-04089# If @buffer@ was created
+-- -   #VUID-VkBufferMemoryBarrier2-buffer-09096# If @buffer@ was created
 --     with a sharing mode of
 --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and
 --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,
---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid
---     queue families, or one of the special queue family values reserved
---     for external memory transfers, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>
+--     @dstQueueFamilyIndex@ /must/ be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL',
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid
+--     queue family
 --
+-- -   #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087# If
+--     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at
+--     least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/
+--     not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkBufferMemoryBarrier2-None-09097# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkBufferMemoryBarrier2-None-09098# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--     extension is not enabled, and the value of
+--     'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+--     used to create the 'Vulkan.Core10.Handles.Instance' is not greater
+--     than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL'
+--
+-- -   #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @srcQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
+-- -   #VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--     extension is not enabled @dstQueueFamilyIndex@ /must/ not be
+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT'
+--
 -- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-03851# If either
 --     @srcStageMask@ or @dstStageMask@ includes
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',
@@ -4712,7 +4809,12 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2'
 --
 -- -   #VUID-VkBufferMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@
+--     or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT'
 --
+-- -   #VUID-VkBufferMemoryBarrier2-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkBufferMemoryBarrier2-srcStageMask-parameter# @srcStageMask@
 --     /must/ be a valid combination of
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'
@@ -4743,8 +4845,10 @@
 -- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data BufferMemoryBarrier2 = BufferMemoryBarrier2
-  { -- | @srcStageMask@ is a
+data BufferMemoryBarrier2 (es :: [Type]) = BufferMemoryBarrier2
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @srcStageMask@ is a
     -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of
     -- pipeline stages to be included in the
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.
@@ -4780,41 +4884,56 @@
     -- from @offset@ to the end of the buffer.
     size :: DeviceSize
   }
-  deriving (Typeable, Eq)
+  deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (BufferMemoryBarrier2)
+deriving instance Generic (BufferMemoryBarrier2 (es :: [Type]))
 #endif
-deriving instance Show BufferMemoryBarrier2
+deriving instance Show (Chain es) => Show (BufferMemoryBarrier2 es)
 
-instance ToCStruct BufferMemoryBarrier2 where
+instance Extensible BufferMemoryBarrier2 where
+  extensibleTypeName = "BufferMemoryBarrier2"
+  setNext BufferMemoryBarrier2{..} next' = BufferMemoryBarrier2{next = next', ..}
+  getNext BufferMemoryBarrier2{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferMemoryBarrier2 e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss BufferMemoryBarrier2 es
+         , PokeChain es ) => ToCStruct (BufferMemoryBarrier2 es) where
   withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BufferMemoryBarrier2{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)
-    poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)
-    poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)
-    poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)
-    poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)
-    poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)
-    poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)
-    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)
-    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)
-    f
+  pokeCStruct p BufferMemoryBarrier2{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)
+    lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)
+    lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)
+    lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)
+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)
+    lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)
+    lift $ poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)
+    lift $ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)
+    lift $ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)
+    lift $ f
   cStructSize = 80
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)
-    poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
+    lift $ poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)
+    lift $ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)
+    lift $ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)
+    lift $ f
 
-instance FromCStruct BufferMemoryBarrier2 where
+instance ( Extendss BufferMemoryBarrier2 es
+         , PeekChain es ) => FromCStruct (BufferMemoryBarrier2 es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))
     srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))
     dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))
@@ -4825,6 +4944,7 @@
     offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))
     size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))
     pure $ BufferMemoryBarrier2
+             next
              srcStageMask
              srcAccessMask
              dstStageMask
@@ -4835,14 +4955,9 @@
              offset
              size
 
-instance Storable BufferMemoryBarrier2 where
-  sizeOf ~_ = 80
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BufferMemoryBarrier2 where
+instance es ~ '[] => Zero (BufferMemoryBarrier2 es) where
   zero = BufferMemoryBarrier2
+           ()
            zero
            zero
            zero
@@ -4921,7 +5036,7 @@
   , -- | @pBufferMemoryBarriers@ is a pointer to an array of
     -- 'BufferMemoryBarrier2' structures defining memory dependencies between
     -- buffer ranges.
-    bufferMemoryBarriers :: Vector BufferMemoryBarrier2
+    bufferMemoryBarriers :: Vector (SomeStruct BufferMemoryBarrier2)
   , -- | @pImageMemoryBarriers@ is a pointer to an array of 'ImageMemoryBarrier2'
     -- structures defining memory dependencies between image subresources.
     imageMemoryBarriers :: Vector (SomeStruct ImageMemoryBarrier2)
@@ -4943,9 +5058,9 @@
     lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2) (e)) (memoryBarriers)
     lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2))) (pPMemoryBarriers')
     lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))
-    pPBufferMemoryBarriers' <- ContT $ allocaBytes @BufferMemoryBarrier2 ((Data.Vector.length (bufferMemoryBarriers)) * 80)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2) (e)) (bufferMemoryBarriers)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2))) (pPBufferMemoryBarriers')
+    pPBufferMemoryBarriers' <- ContT $ allocaBytes @(BufferMemoryBarrier2 _) ((Data.Vector.length (bufferMemoryBarriers)) * 80)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr (BufferMemoryBarrier2 _))) (e) . ($ ())) (bufferMemoryBarriers)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferMemoryBarrier2 _)))) (pPBufferMemoryBarriers')
     lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))
     pPImageMemoryBarriers' <- ContT $ allocaBytes @(ImageMemoryBarrier2 _) ((Data.Vector.length (imageMemoryBarriers)) * 96)
     Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _))) (e) . ($ ())) (imageMemoryBarriers)
@@ -4965,8 +5080,8 @@
     pMemoryBarriers <- peek @(Ptr MemoryBarrier2) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2)))
     pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2 ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2)))
     bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2)))
-    pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2 ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2)))
+    pBufferMemoryBarriers <- peek @(Ptr (BufferMemoryBarrier2 _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferMemoryBarrier2 _))))
+    pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr (BufferMemoryBarrier2 _)))))
     imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
     pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2 _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2 _))))
     pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _)))))
@@ -5041,14 +5156,14 @@
 -- -   #VUID-VkSemaphoreSubmitInfo-stageMask-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @stageMask@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-VkSemaphoreSubmitInfo-stageMask-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @stageMask@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07946# If neither the
+-- -   #VUID-VkSemaphoreSubmitInfo-stageMask-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
@@ -5323,6 +5438,8 @@
 -- -   #VUID-VkSubmitInfo2-pNext-pNext# Each @pNext@ member of any
 --     structure (including this one) in the @pNext@ chain /must/ be either
 --     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
+--     'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV',
 --     'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',
 --     'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',
 --     or
@@ -5389,6 +5506,8 @@
   getNext SubmitInfo2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @LatencySubmissionPresentIdNV = Just f
+    | Just Refl <- eqT @e @FrameBoundaryEXT = Just f
     | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f
     | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoKHR = Just f
     | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot
@@ -17,12 +17,15 @@
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-data BufferMemoryBarrier2
+type role BufferMemoryBarrier2 nominal
+data BufferMemoryBarrier2 (es :: [Type])
 
-instance ToCStruct BufferMemoryBarrier2
-instance Show BufferMemoryBarrier2
+instance ( Extendss BufferMemoryBarrier2 es
+         , PokeChain es ) => ToCStruct (BufferMemoryBarrier2 es)
+instance Show (Chain es) => Show (BufferMemoryBarrier2 es)
 
-instance FromCStruct BufferMemoryBarrier2
+instance ( Extendss BufferMemoryBarrier2 es
+         , PeekChain es ) => FromCStruct (BufferMemoryBarrier2 es)
 
 
 data CommandBufferSubmitInfo
diff --git a/src/Vulkan/Dynamic.hs b/src/Vulkan/Dynamic.hs
--- a/src/Vulkan/Dynamic.hs
+++ b/src/Vulkan/Dynamic.hs
@@ -90,6 +90,7 @@
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (CooperativeMatrixPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureModeKHR)
@@ -99,7 +100,10 @@
 import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToImageInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToMemoryInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyMemoryToImageInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMemoryToMicromapInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapToMemoryInfoEXT)
@@ -130,6 +134,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.Handles (DeferredOperationKHR)
 import {-# SOURCE #-} Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlags)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorGetInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.Handles (DescriptorPool)
@@ -153,6 +158,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentModeFlagsKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (DeviceImageSubresourceInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.Handles (DeviceMemory)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo)
 import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2)
@@ -160,6 +166,7 @@
 import {-# SOURCE #-} Vulkan.Core10.Handles (Device_T)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (DiscardRectangleModeEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (DispatchGraphCountInfoAMDX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (Display)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.Handles (DisplayKHR)
@@ -178,6 +185,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplaySurfaceCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.Handles (Event)
 import {-# SOURCE #-} Vulkan.Core10.Event (EventCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineCreateInfoAMDX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineScratchSizeAMDX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectsInfoEXT)
 import {-# SOURCE #-} Vulkan.Core10.ExtensionDiscovery (ExtensionProperties)
 import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Extent2D)
@@ -203,13 +212,16 @@
 import {-# SOURCE #-} Vulkan.Core10.Enums.FrontFace (FrontFace)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (GetLatencyMarkerInfoNV)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (GraphicsPipelineCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (HANDLE)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (HdrMetadataEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageLayoutTransitionInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (IDirectFB)
 import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK)
 import {-# SOURCE #-} Vulkan.Core10.Handles (Image)
+import {-# SOURCE #-} Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageCaptureDescriptorDataInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA)
@@ -226,7 +238,7 @@
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2)
 import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageSubresource2EXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
 import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange)
 import {-# SOURCE #-} Vulkan.Core10.Enums.ImageTiling (ImageTiling)
@@ -247,6 +259,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL)
 import {-# SOURCE #-} Vulkan.Core10.Handles (Instance_T)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepInfoNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepModeInfoNV)
 import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT)
 import {-# SOURCE #-} Vulkan.Core10.Enums.LogicOp (LogicOp)
@@ -285,6 +299,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionBindingPointNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.Handles (OpticalFlowSessionNV)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (OutOfBandQueueTypeInfoNV)
 import {-# SOURCE #-} Vulkan.Core10.FuncPointers (PFN_vkVoidFunction)
 import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE)
 import {-# SOURCE #-} Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlags)
@@ -321,10 +336,12 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInternalRepresentationKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutablePropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PipelineIndirectDeviceAddressInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PipelineInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.Handles (PipelineLayout)
 import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PipelineShaderStageNodeCreateInfoAMDX)
 import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits)
 import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
 import {-# SOURCE #-} Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
@@ -355,6 +372,7 @@
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (RenderPassCreateInfo2)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (RenderingAreaInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2)
 import {-# SOURCE #-} Vulkan.Core10.Enums.Result (Result)
@@ -366,7 +384,9 @@
 import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Handles (SamplerYcbcrConversion)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ScreenBufferPropertiesQNX)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (Screen_buffer)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (Screen_window)
 import {-# SOURCE #-} Vulkan.Core10.Handles (Semaphore)
 import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo)
@@ -375,6 +395,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SetLatencyMarkerInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.Handles (ShaderEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (ShaderGroupShaderKHR)
@@ -400,7 +421,7 @@
 import {-# SOURCE #-} Vulkan.Core10.Enums.SubpassContents (SubpassContents)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo)
 import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (SubresourceLayout2EXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceCapabilitiesKHR)
@@ -485,7 +506,7 @@
   , pVkGetPhysicalDeviceQueueFamilyProperties2 :: FunPtr (Ptr PhysicalDevice_T -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr (SomeStruct QueueFamilyProperties2)) -> IO ())
   , pVkGetPhysicalDeviceMemoryProperties2 :: FunPtr (Ptr PhysicalDevice_T -> ("pMemoryProperties" ::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2)) -> IO ())
   , pVkGetPhysicalDeviceSparseImageFormatProperties2 :: FunPtr (Ptr PhysicalDevice_T -> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO ())
-  , pVkGetPhysicalDeviceExternalBufferProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr PhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ())
+  , pVkGetPhysicalDeviceExternalBufferProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalBufferInfo)) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ())
   , pVkGetPhysicalDeviceExternalSemaphoreProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalSemaphoreInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalSemaphoreInfo)) -> ("pExternalSemaphoreProperties" ::: Ptr ExternalSemaphoreProperties) -> IO ())
   , pVkGetPhysicalDeviceExternalFenceProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalFenceInfo" ::: Ptr PhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr ExternalFenceProperties) -> IO ())
   , pVkReleaseDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> IO Result)
@@ -521,6 +542,7 @@
   , pVkAcquireDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result)
   , pVkGetDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result)
   , pVkGetPhysicalDeviceOpticalFlowImageFormatsNV :: FunPtr (Ptr PhysicalDevice_T -> ("pOpticalFlowImageFormatInfo" ::: Ptr OpticalFlowImageFormatInfoNV) -> ("pFormatCount" ::: Ptr Word32) -> ("pImageFormatProperties" ::: Ptr OpticalFlowImageFormatPropertiesNV) -> IO Result)
+  , pVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixPropertiesKHR) -> IO Result)
   }
 
 deriving instance Eq InstanceCmds
@@ -615,7 +637,7 @@
     nullFunPtr
     nullFunPtr
     nullFunPtr
-    nullFunPtr
+    nullFunPtr nullFunPtr
 
 -- | A version of 'getInstanceProcAddr' which can be called
 -- with a null pointer for the instance.
@@ -734,6 +756,7 @@
   vkAcquireDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireDrmDisplayEXT"#)
   vkGetDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetDrmDisplayEXT"#)
   vkGetPhysicalDeviceOpticalFlowImageFormatsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"#)
+  vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"#)
   pure $ InstanceCmds handle
     (castFunPtr @_ @(Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyInstance)
     (castFunPtr @_ @(Ptr Instance_T -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr (Ptr PhysicalDevice_T)) -> IO Result) vkEnumeratePhysicalDevices)
@@ -787,7 +810,7 @@
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr (SomeStruct QueueFamilyProperties2)) -> IO ()) vkGetPhysicalDeviceQueueFamilyProperties2)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pMemoryProperties" ::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2)) -> IO ()) vkGetPhysicalDeviceMemoryProperties2)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO ()) vkGetPhysicalDeviceSparseImageFormatProperties2)
-    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr PhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ()) vkGetPhysicalDeviceExternalBufferProperties)
+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalBufferInfo)) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ()) vkGetPhysicalDeviceExternalBufferProperties)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalSemaphoreInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalSemaphoreInfo)) -> ("pExternalSemaphoreProperties" ::: Ptr ExternalSemaphoreProperties) -> IO ()) vkGetPhysicalDeviceExternalSemaphoreProperties)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalFenceInfo" ::: Ptr PhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr ExternalFenceProperties) -> IO ()) vkGetPhysicalDeviceExternalFenceProperties)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) vkReleaseDisplayEXT)
@@ -823,6 +846,7 @@
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result) vkAcquireDrmDisplayEXT)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result) vkGetDrmDisplayEXT)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pOpticalFlowImageFormatInfo" ::: Ptr OpticalFlowImageFormatInfoNV) -> ("pFormatCount" ::: Ptr Word32) -> ("pImageFormatProperties" ::: Ptr OpticalFlowImageFormatPropertiesNV) -> IO Result) vkGetPhysicalDeviceOpticalFlowImageFormatsNV)
+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixPropertiesKHR) -> IO Result) vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)
 
 data DeviceCmds = DeviceCmds
   { deviceCmdsHandle :: Ptr Device_T
@@ -897,6 +921,7 @@
   , pVkCreateRenderPass :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct RenderPassCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pRenderPass" ::: Ptr RenderPass) -> IO Result)
   , pVkDestroyRenderPass :: FunPtr (Ptr Device_T -> RenderPass -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkGetRenderAreaGranularity :: FunPtr (Ptr Device_T -> RenderPass -> ("pGranularity" ::: Ptr Extent2D) -> IO ())
+  , pVkGetRenderingAreaGranularityKHR :: FunPtr (Ptr Device_T -> ("pRenderingAreaInfo" ::: Ptr RenderingAreaInfoKHR) -> ("pGranularity" ::: Ptr Extent2D) -> IO ())
   , pVkCreateCommandPool :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CommandPoolCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCommandPool" ::: Ptr CommandPool) -> IO Result)
   , pVkDestroyCommandPool :: FunPtr (Ptr Device_T -> CommandPool -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkResetCommandPool :: FunPtr (Ptr Device_T -> CommandPool -> CommandPoolResetFlags -> IO Result)
@@ -906,6 +931,7 @@
   , pVkEndCommandBuffer :: FunPtr (Ptr CommandBuffer_T -> IO Result)
   , pVkResetCommandBuffer :: FunPtr (Ptr CommandBuffer_T -> CommandBufferResetFlags -> IO Result)
   , pVkCmdBindPipeline :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ())
+  , pVkCmdSetAttachmentFeedbackLoopEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("aspectMask" ::: ImageAspectFlags) -> IO ())
   , pVkCmdSetViewport :: FunPtr (Ptr CommandBuffer_T -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())
   , pVkCmdSetScissor :: FunPtr (Ptr CommandBuffer_T -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())
   , pVkCmdSetLineWidth :: FunPtr (Ptr CommandBuffer_T -> ("lineWidth" ::: CFloat) -> IO ())
@@ -929,6 +955,7 @@
   , 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 ())
+  , pVkCmdUpdatePipelineIndirectBufferNV :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> 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 ())
@@ -944,8 +971,8 @@
   , pVkCmdResolveImage :: FunPtr (Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageResolve) -> IO ())
   , pVkCmdSetEvent :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ())
   , pVkCmdResetEvent :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ())
-  , pVkCmdWaitEvents :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ())
-  , pVkCmdPipelineBarrier :: FunPtr (Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ())
+  , pVkCmdWaitEvents :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ())
+  , pVkCmdPipelineBarrier :: FunPtr (Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ())
   , pVkCmdBeginQuery :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> QueryControlFlags -> IO ())
   , pVkCmdEndQuery :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> IO ())
   , pVkCmdBeginConditionalRenderingEXT :: FunPtr (Ptr CommandBuffer_T -> ("pConditionalRenderingBegin" ::: Ptr ConditionalRenderingBeginInfoEXT) -> IO ())
@@ -1141,11 +1168,14 @@
   , pVkGetDeferredOperationMaxConcurrencyKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Word32)
   , pVkGetDeferredOperationResultKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)
   , pVkDeferredOperationJoinKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)
+  , pVkGetPipelineIndirectMemoryRequirementsNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ComputePipelineCreateInfo)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())
+  , pVkGetPipelineIndirectDeviceAddressNV :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr PipelineIndirectDeviceAddressInfoNV) -> IO DeviceAddress)
   , pVkCmdSetCullMode :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())
   , pVkCmdSetFrontFace :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())
   , pVkCmdSetPrimitiveTopology :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())
   , pVkCmdSetViewportWithCount :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())
   , pVkCmdSetScissorWithCount :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())
+  , pVkCmdBindIndexBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> DeviceSize -> IndexType -> IO ())
   , pVkCmdBindVertexBuffers2 :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ())
   , pVkCmdSetDepthTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ())
   , pVkCmdSetDepthWriteEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ())
@@ -1195,7 +1225,7 @@
   , pVkGetPrivateData :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ())
   , pVkCmdCopyBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ())
   , pVkCmdCopyImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ())
-  , pVkCmdBlitImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ())
+  , pVkCmdBlitImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr (SomeStruct BlitImageInfo2)) -> IO ())
   , pVkCmdCopyBufferToImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ())
   , pVkCmdCopyImageToBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ())
   , pVkCmdResolveImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ())
@@ -1212,6 +1242,10 @@
   , pVkCmdWriteTimestamp2 :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ())
   , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ())
   , pVkGetQueueCheckpointData2NV :: FunPtr (Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ())
+  , pVkCopyMemoryToImageEXT :: FunPtr (Ptr Device_T -> ("pCopyMemoryToImageInfo" ::: Ptr CopyMemoryToImageInfoEXT) -> IO Result)
+  , pVkCopyImageToMemoryEXT :: FunPtr (Ptr Device_T -> ("pCopyImageToMemoryInfo" ::: Ptr CopyImageToMemoryInfoEXT) -> IO Result)
+  , pVkCopyImageToImageEXT :: FunPtr (Ptr Device_T -> ("pCopyImageToImageInfo" ::: Ptr CopyImageToImageInfoEXT) -> IO Result)
+  , pVkTransitionImageLayoutEXT :: FunPtr (Ptr Device_T -> ("transitionCount" ::: Word32) -> ("pTransitions" ::: Ptr HostImageLayoutTransitionInfoEXT) -> IO Result)
   , pVkCmdDecompressMemoryNV :: FunPtr (Ptr CommandBuffer_T -> ("decompressRegionCount" ::: Word32) -> ("pDecompressMemoryRegions" ::: Ptr DecompressMemoryRegionNV) -> IO ())
   , pVkCmdDecompressMemoryIndirectCountNV :: FunPtr (Ptr CommandBuffer_T -> ("indirectCommandsAddress" ::: DeviceAddress) -> ("indirectCommandsCountAddress" ::: DeviceAddress) -> ("stride" ::: Word32) -> IO ())
   , pVkCreateCuModuleNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result)
@@ -1257,7 +1291,7 @@
   , pVkGetMicromapBuildSizesEXT :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO ())
   , pVkGetShaderModuleIdentifierEXT :: FunPtr (Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ())
   , pVkGetShaderModuleCreateInfoIdentifierEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ())
-  , pVkGetImageSubresourceLayout2EXT :: FunPtr (Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ())
+  , pVkGetImageSubresourceLayout2KHR :: FunPtr (Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2KHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ())
   , pVkGetPipelinePropertiesEXT :: FunPtr (Ptr Device_T -> ("pPipelineInfo" ::: Ptr PipelineInfoEXT) -> ("pPipelineProperties" ::: Ptr BaseOutStructure) -> IO Result)
   , pVkExportMetalObjectsEXT :: FunPtr (Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ())
   , pVkGetFramebufferTilePropertiesQCOM :: FunPtr (Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result)
@@ -1267,13 +1301,28 @@
   , pVkBindOpticalFlowSessionImageNV :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result)
   , pVkCmdOpticalFlowExecuteNV :: FunPtr (Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ())
   , pVkGetDeviceFaultInfoEXT :: FunPtr (Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result)
+  , pVkCmdSetDepthBias2EXT :: FunPtr (Ptr CommandBuffer_T -> ("pDepthBiasInfo" ::: Ptr (SomeStruct DepthBiasInfoEXT)) -> IO ())
   , pVkReleaseSwapchainImagesEXT :: FunPtr (Ptr Device_T -> ("pReleaseInfo" ::: Ptr ReleaseSwapchainImagesInfoEXT) -> IO Result)
+  , pVkGetDeviceImageSubresourceLayoutKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageSubresourceInfoKHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ())
   , pVkMapMemory2KHR :: FunPtr (Ptr Device_T -> ("pMemoryMapInfo" ::: Ptr MemoryMapInfoKHR) -> ("ppData" ::: Ptr (Ptr ())) -> IO Result)
   , pVkUnmapMemory2KHR :: FunPtr (Ptr Device_T -> ("pMemoryUnmapInfo" ::: Ptr MemoryUnmapInfoKHR) -> IO Result)
   , pVkCreateShadersEXT :: FunPtr (Ptr Device_T -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ShaderCreateInfoEXT)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pShaders" ::: Ptr ShaderEXT) -> IO Result)
   , pVkDestroyShaderEXT :: FunPtr (Ptr Device_T -> ShaderEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkGetShaderBinaryDataEXT :: FunPtr (Ptr Device_T -> ShaderEXT -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO Result)
   , pVkCmdBindShadersEXT :: FunPtr (Ptr CommandBuffer_T -> ("stageCount" ::: Word32) -> ("pStages" ::: Ptr ShaderStageFlagBits) -> ("pShaders" ::: Ptr ShaderEXT) -> IO ())
+  , pVkGetScreenBufferPropertiesQNX :: FunPtr (Ptr Device_T -> Ptr Screen_buffer -> ("pProperties" ::: Ptr (SomeStruct ScreenBufferPropertiesQNX)) -> IO Result)
+  , pVkGetExecutionGraphPipelineScratchSizeAMDX :: FunPtr (Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pSizeInfo" ::: Ptr ExecutionGraphPipelineScratchSizeAMDX) -> IO Result)
+  , pVkGetExecutionGraphPipelineNodeIndexAMDX :: FunPtr (Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pNodeInfo" ::: Ptr PipelineShaderStageNodeCreateInfoAMDX) -> ("pNodeIndex" ::: Ptr Word32) -> IO Result)
+  , pVkCreateExecutionGraphPipelinesAMDX :: FunPtr (Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result)
+  , pVkCmdInitializeGraphScratchMemoryAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> IO ())
+  , pVkCmdDispatchGraphAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ())
+  , pVkCmdDispatchGraphIndirectAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ())
+  , pVkCmdDispatchGraphIndirectCountAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("countInfo" ::: DeviceAddress) -> IO ())
+  , pVkSetLatencySleepModeNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pSleepModeInfo" ::: Ptr LatencySleepModeInfoNV) -> IO Result)
+  , pVkLatencySleepNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pSleepInfo" ::: Ptr LatencySleepInfoNV) -> IO Result)
+  , pVkSetLatencyMarkerNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pLatencyMarkerInfo" ::: Ptr SetLatencyMarkerInfoNV) -> IO ())
+  , pVkGetLatencyTimingsNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pTimingCount" ::: Ptr Word32) -> ("pLatencyMarkerInfo" ::: Ptr GetLatencyMarkerInfoNV) -> IO ())
+  , pVkQueueNotifyOutOfBandNV :: FunPtr (Ptr Queue_T -> ("pQueueTypeInfo" ::: Ptr OutOfBandQueueTypeInfoNV) -> IO ())
   }
 
 deriving instance Eq DeviceCmds
@@ -1729,6 +1778,30 @@
     nullFunPtr
     nullFunPtr
     nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    nullFunPtr
+    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)
@@ -1821,6 +1894,7 @@
   vkCreateRenderPass <- getDeviceProcAddr' handle (Ptr "vkCreateRenderPass"#)
   vkDestroyRenderPass <- getDeviceProcAddr' handle (Ptr "vkDestroyRenderPass"#)
   vkGetRenderAreaGranularity <- getDeviceProcAddr' handle (Ptr "vkGetRenderAreaGranularity"#)
+  vkGetRenderingAreaGranularityKHR <- getDeviceProcAddr' handle (Ptr "vkGetRenderingAreaGranularityKHR"#)
   vkCreateCommandPool <- getDeviceProcAddr' handle (Ptr "vkCreateCommandPool"#)
   vkDestroyCommandPool <- getDeviceProcAddr' handle (Ptr "vkDestroyCommandPool"#)
   vkResetCommandPool <- getDeviceProcAddr' handle (Ptr "vkResetCommandPool"#)
@@ -1830,6 +1904,7 @@
   vkEndCommandBuffer <- getDeviceProcAddr' handle (Ptr "vkEndCommandBuffer"#)
   vkResetCommandBuffer <- getDeviceProcAddr' handle (Ptr "vkResetCommandBuffer"#)
   vkCmdBindPipeline <- getDeviceProcAddr' handle (Ptr "vkCmdBindPipeline"#)
+  vkCmdSetAttachmentFeedbackLoopEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetAttachmentFeedbackLoopEnableEXT"#)
   vkCmdSetViewport <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewport"#)
   vkCmdSetScissor <- getDeviceProcAddr' handle (Ptr "vkCmdSetScissor"#)
   vkCmdSetLineWidth <- getDeviceProcAddr' handle (Ptr "vkCmdSetLineWidth"#)
@@ -1853,6 +1928,7 @@
   vkCmdSubpassShadingHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdSubpassShadingHUAWEI"#)
   vkCmdDrawClusterHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdDrawClusterHUAWEI"#)
   vkCmdDrawClusterIndirectHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdDrawClusterIndirectHUAWEI"#)
+  vkCmdUpdatePipelineIndirectBufferNV <- getDeviceProcAddr' handle (Ptr "vkCmdUpdatePipelineIndirectBufferNV"#)
   vkCmdCopyBuffer <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBuffer"#)
   vkCmdCopyImage <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImage"#)
   vkCmdBlitImage <- getDeviceProcAddr' handle (Ptr "vkCmdBlitImage"#)
@@ -2099,6 +2175,8 @@
   vkGetDeferredOperationMaxConcurrencyKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationMaxConcurrencyKHR"#)
   vkGetDeferredOperationResultKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationResultKHR"#)
   vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#)
+  vkGetPipelineIndirectMemoryRequirementsNV <- getDeviceProcAddr' handle (Ptr "vkGetPipelineIndirectMemoryRequirementsNV"#)
+  vkGetPipelineIndirectDeviceAddressNV <- getDeviceProcAddr' handle (Ptr "vkGetPipelineIndirectDeviceAddressNV"#)
   vkCmdSetCullMode <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetCullModeEXT"#)
                                              , (Ptr "vkCmdSetCullMode"#) ]
   vkCmdSetFrontFace <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetFrontFaceEXT"#)
@@ -2109,6 +2187,7 @@
                                                       , (Ptr "vkCmdSetViewportWithCount"#) ]
   vkCmdSetScissorWithCount <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetScissorWithCountEXT"#)
                                                      , (Ptr "vkCmdSetScissorWithCount"#) ]
+  vkCmdBindIndexBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdBindIndexBuffer2KHR"#)
   vkCmdBindVertexBuffers2 <- getFirstDeviceProcAddr [ (Ptr "vkCmdBindVertexBuffers2EXT"#)
                                                     , (Ptr "vkCmdBindVertexBuffers2"#) ]
   vkCmdSetDepthTestEnable <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetDepthTestEnableEXT"#)
@@ -2201,6 +2280,10 @@
                                                  , (Ptr "vkCmdWriteTimestamp2"#) ]
   vkCmdWriteBufferMarker2AMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarker2AMD"#)
   vkGetQueueCheckpointData2NV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointData2NV"#)
+  vkCopyMemoryToImageEXT <- getDeviceProcAddr' handle (Ptr "vkCopyMemoryToImageEXT"#)
+  vkCopyImageToMemoryEXT <- getDeviceProcAddr' handle (Ptr "vkCopyImageToMemoryEXT"#)
+  vkCopyImageToImageEXT <- getDeviceProcAddr' handle (Ptr "vkCopyImageToImageEXT"#)
+  vkTransitionImageLayoutEXT <- getDeviceProcAddr' handle (Ptr "vkTransitionImageLayoutEXT"#)
   vkCmdDecompressMemoryNV <- getDeviceProcAddr' handle (Ptr "vkCmdDecompressMemoryNV"#)
   vkCmdDecompressMemoryIndirectCountNV <- getDeviceProcAddr' handle (Ptr "vkCmdDecompressMemoryIndirectCountNV"#)
   vkCreateCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuModuleNVX"#)
@@ -2248,7 +2331,8 @@
   vkGetMicromapBuildSizesEXT <- getDeviceProcAddr' handle (Ptr "vkGetMicromapBuildSizesEXT"#)
   vkGetShaderModuleIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleIdentifierEXT"#)
   vkGetShaderModuleCreateInfoIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleCreateInfoIdentifierEXT"#)
-  vkGetImageSubresourceLayout2EXT <- getDeviceProcAddr' handle (Ptr "vkGetImageSubresourceLayout2EXT"#)
+  vkGetImageSubresourceLayout2KHR <- getFirstDeviceProcAddr [ (Ptr "vkGetImageSubresourceLayout2EXT"#)
+                                                            , (Ptr "vkGetImageSubresourceLayout2KHR"#) ]
   vkGetPipelinePropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkGetPipelinePropertiesEXT"#)
   vkExportMetalObjectsEXT <- getDeviceProcAddr' handle (Ptr "vkExportMetalObjectsEXT"#)
   vkGetFramebufferTilePropertiesQCOM <- getDeviceProcAddr' handle (Ptr "vkGetFramebufferTilePropertiesQCOM"#)
@@ -2258,13 +2342,28 @@
   vkBindOpticalFlowSessionImageNV <- getDeviceProcAddr' handle (Ptr "vkBindOpticalFlowSessionImageNV"#)
   vkCmdOpticalFlowExecuteNV <- getDeviceProcAddr' handle (Ptr "vkCmdOpticalFlowExecuteNV"#)
   vkGetDeviceFaultInfoEXT <- getDeviceProcAddr' handle (Ptr "vkGetDeviceFaultInfoEXT"#)
+  vkCmdSetDepthBias2EXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBias2EXT"#)
   vkReleaseSwapchainImagesEXT <- getDeviceProcAddr' handle (Ptr "vkReleaseSwapchainImagesEXT"#)
+  vkGetDeviceImageSubresourceLayoutKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceImageSubresourceLayoutKHR"#)
   vkMapMemory2KHR <- getDeviceProcAddr' handle (Ptr "vkMapMemory2KHR"#)
   vkUnmapMemory2KHR <- getDeviceProcAddr' handle (Ptr "vkUnmapMemory2KHR"#)
   vkCreateShadersEXT <- getDeviceProcAddr' handle (Ptr "vkCreateShadersEXT"#)
   vkDestroyShaderEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyShaderEXT"#)
   vkGetShaderBinaryDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderBinaryDataEXT"#)
   vkCmdBindShadersEXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindShadersEXT"#)
+  vkGetScreenBufferPropertiesQNX <- getDeviceProcAddr' handle (Ptr "vkGetScreenBufferPropertiesQNX"#)
+  vkGetExecutionGraphPipelineScratchSizeAMDX <- getDeviceProcAddr' handle (Ptr "vkGetExecutionGraphPipelineScratchSizeAMDX"#)
+  vkGetExecutionGraphPipelineNodeIndexAMDX <- getDeviceProcAddr' handle (Ptr "vkGetExecutionGraphPipelineNodeIndexAMDX"#)
+  vkCreateExecutionGraphPipelinesAMDX <- getDeviceProcAddr' handle (Ptr "vkCreateExecutionGraphPipelinesAMDX"#)
+  vkCmdInitializeGraphScratchMemoryAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdInitializeGraphScratchMemoryAMDX"#)
+  vkCmdDispatchGraphAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchGraphAMDX"#)
+  vkCmdDispatchGraphIndirectAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchGraphIndirectAMDX"#)
+  vkCmdDispatchGraphIndirectCountAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchGraphIndirectCountAMDX"#)
+  vkSetLatencySleepModeNV <- getDeviceProcAddr' handle (Ptr "vkSetLatencySleepModeNV"#)
+  vkLatencySleepNV <- getDeviceProcAddr' handle (Ptr "vkLatencySleepNV"#)
+  vkSetLatencyMarkerNV <- getDeviceProcAddr' handle (Ptr "vkSetLatencyMarkerNV"#)
+  vkGetLatencyTimingsNV <- getDeviceProcAddr' handle (Ptr "vkGetLatencyTimingsNV"#)
+  vkQueueNotifyOutOfBandNV <- getDeviceProcAddr' handle (Ptr "vkQueueNotifyOutOfBandNV"#)
   pure $ DeviceCmds handle
     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)
     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)
@@ -2337,6 +2436,7 @@
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct RenderPassCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pRenderPass" ::: Ptr RenderPass) -> IO Result) vkCreateRenderPass)
     (castFunPtr @_ @(Ptr Device_T -> RenderPass -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyRenderPass)
     (castFunPtr @_ @(Ptr Device_T -> RenderPass -> ("pGranularity" ::: Ptr Extent2D) -> IO ()) vkGetRenderAreaGranularity)
+    (castFunPtr @_ @(Ptr Device_T -> ("pRenderingAreaInfo" ::: Ptr RenderingAreaInfoKHR) -> ("pGranularity" ::: Ptr Extent2D) -> IO ()) vkGetRenderingAreaGranularityKHR)
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CommandPoolCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCommandPool" ::: Ptr CommandPool) -> IO Result) vkCreateCommandPool)
     (castFunPtr @_ @(Ptr Device_T -> CommandPool -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCommandPool)
     (castFunPtr @_ @(Ptr Device_T -> CommandPool -> CommandPoolResetFlags -> IO Result) vkResetCommandPool)
@@ -2346,6 +2446,7 @@
     (castFunPtr @_ @(Ptr CommandBuffer_T -> IO Result) vkEndCommandBuffer)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> CommandBufferResetFlags -> IO Result) vkResetCommandBuffer)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) vkCmdBindPipeline)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("aspectMask" ::: ImageAspectFlags) -> IO ()) vkCmdSetAttachmentFeedbackLoopEnableEXT)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewport)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissor)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("lineWidth" ::: CFloat) -> IO ()) vkCmdSetLineWidth)
@@ -2369,6 +2470,7 @@
     (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 -> PipelineBindPoint -> Pipeline -> IO ()) vkCmdUpdatePipelineIndirectBufferNV)
     (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)
@@ -2384,8 +2486,8 @@
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageResolve) -> IO ()) vkCmdResolveImage)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ()) vkCmdSetEvent)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ()) vkCmdResetEvent)
-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdWaitEvents)
-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdPipelineBarrier)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdWaitEvents)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdPipelineBarrier)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> QueryControlFlags -> IO ()) vkCmdBeginQuery)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdEndQuery)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pConditionalRenderingBegin" ::: Ptr ConditionalRenderingBeginInfoEXT) -> IO ()) vkCmdBeginConditionalRenderingEXT)
@@ -2581,11 +2683,14 @@
     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Word32) vkGetDeferredOperationMaxConcurrencyKHR)
     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkGetDeferredOperationResultKHR)
     (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkDeferredOperationJoinKHR)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ComputePipelineCreateInfo)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetPipelineIndirectMemoryRequirementsNV)
+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr PipelineIndirectDeviceAddressInfoNV) -> IO DeviceAddress) vkGetPipelineIndirectDeviceAddressNV)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullMode)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFace)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopology)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCount)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCount)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> DeviceSize -> IndexType -> IO ()) vkCmdBindIndexBuffer2KHR)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnable)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnable)
@@ -2635,7 +2740,7 @@
     (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateData)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ()) vkCmdCopyBuffer2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ()) vkCmdCopyImage2)
-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ()) vkCmdBlitImage2)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr (SomeStruct BlitImageInfo2)) -> IO ()) vkCmdBlitImage2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ()) vkCmdCopyBufferToImage2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ()) vkCmdCopyImageToBuffer2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ()) vkCmdResolveImage2)
@@ -2652,6 +2757,10 @@
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD)
     (castFunPtr @_ @(Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) vkGetQueueCheckpointData2NV)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCopyMemoryToImageInfo" ::: Ptr CopyMemoryToImageInfoEXT) -> IO Result) vkCopyMemoryToImageEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCopyImageToMemoryInfo" ::: Ptr CopyImageToMemoryInfoEXT) -> IO Result) vkCopyImageToMemoryEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("pCopyImageToImageInfo" ::: Ptr CopyImageToImageInfoEXT) -> IO Result) vkCopyImageToImageEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("transitionCount" ::: Word32) -> ("pTransitions" ::: Ptr HostImageLayoutTransitionInfoEXT) -> IO Result) vkTransitionImageLayoutEXT)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("decompressRegionCount" ::: Word32) -> ("pDecompressMemoryRegions" ::: Ptr DecompressMemoryRegionNV) -> IO ()) vkCmdDecompressMemoryNV)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("indirectCommandsAddress" ::: DeviceAddress) -> ("indirectCommandsCountAddress" ::: DeviceAddress) -> ("stride" ::: Word32) -> IO ()) vkCmdDecompressMemoryIndirectCountNV)
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) vkCreateCuModuleNVX)
@@ -2697,7 +2806,7 @@
     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO ()) vkGetMicromapBuildSizesEXT)
     (castFunPtr @_ @(Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleIdentifierEXT)
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleCreateInfoIdentifierEXT)
-    (castFunPtr @_ @(Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ()) vkGetImageSubresourceLayout2EXT)
+    (castFunPtr @_ @(Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2KHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ()) vkGetImageSubresourceLayout2KHR)
     (castFunPtr @_ @(Ptr Device_T -> ("pPipelineInfo" ::: Ptr PipelineInfoEXT) -> ("pPipelineProperties" ::: Ptr BaseOutStructure) -> IO Result) vkGetPipelinePropertiesEXT)
     (castFunPtr @_ @(Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ()) vkExportMetalObjectsEXT)
     (castFunPtr @_ @(Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) vkGetFramebufferTilePropertiesQCOM)
@@ -2707,11 +2816,26 @@
     (castFunPtr @_ @(Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) vkBindOpticalFlowSessionImageNV)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ()) vkCmdOpticalFlowExecuteNV)
     (castFunPtr @_ @(Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result) vkGetDeviceFaultInfoEXT)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pDepthBiasInfo" ::: Ptr (SomeStruct DepthBiasInfoEXT)) -> IO ()) vkCmdSetDepthBias2EXT)
     (castFunPtr @_ @(Ptr Device_T -> ("pReleaseInfo" ::: Ptr ReleaseSwapchainImagesInfoEXT) -> IO Result) vkReleaseSwapchainImagesEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageSubresourceInfoKHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ()) vkGetDeviceImageSubresourceLayoutKHR)
     (castFunPtr @_ @(Ptr Device_T -> ("pMemoryMapInfo" ::: Ptr MemoryMapInfoKHR) -> ("ppData" ::: Ptr (Ptr ())) -> IO Result) vkMapMemory2KHR)
     (castFunPtr @_ @(Ptr Device_T -> ("pMemoryUnmapInfo" ::: Ptr MemoryUnmapInfoKHR) -> IO Result) vkUnmapMemory2KHR)
     (castFunPtr @_ @(Ptr Device_T -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ShaderCreateInfoEXT)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pShaders" ::: Ptr ShaderEXT) -> IO Result) vkCreateShadersEXT)
     (castFunPtr @_ @(Ptr Device_T -> ShaderEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyShaderEXT)
     (castFunPtr @_ @(Ptr Device_T -> ShaderEXT -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO Result) vkGetShaderBinaryDataEXT)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stageCount" ::: Word32) -> ("pStages" ::: Ptr ShaderStageFlagBits) -> ("pShaders" ::: Ptr ShaderEXT) -> IO ()) vkCmdBindShadersEXT)
+    (castFunPtr @_ @(Ptr Device_T -> Ptr Screen_buffer -> ("pProperties" ::: Ptr (SomeStruct ScreenBufferPropertiesQNX)) -> IO Result) vkGetScreenBufferPropertiesQNX)
+    (castFunPtr @_ @(Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pSizeInfo" ::: Ptr ExecutionGraphPipelineScratchSizeAMDX) -> IO Result) vkGetExecutionGraphPipelineScratchSizeAMDX)
+    (castFunPtr @_ @(Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pNodeInfo" ::: Ptr PipelineShaderStageNodeCreateInfoAMDX) -> ("pNodeIndex" ::: Ptr Word32) -> IO Result) vkGetExecutionGraphPipelineNodeIndexAMDX)
+    (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) vkCreateExecutionGraphPipelinesAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> IO ()) vkCmdInitializeGraphScratchMemoryAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) vkCmdDispatchGraphAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) vkCmdDispatchGraphIndirectAMDX)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("countInfo" ::: DeviceAddress) -> IO ()) vkCmdDispatchGraphIndirectCountAMDX)
+    (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pSleepModeInfo" ::: Ptr LatencySleepModeInfoNV) -> IO Result) vkSetLatencySleepModeNV)
+    (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pSleepInfo" ::: Ptr LatencySleepInfoNV) -> IO Result) vkLatencySleepNV)
+    (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pLatencyMarkerInfo" ::: Ptr SetLatencyMarkerInfoNV) -> IO ()) vkSetLatencyMarkerNV)
+    (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pTimingCount" ::: Ptr Word32) -> ("pLatencyMarkerInfo" ::: Ptr GetLatencyMarkerInfoNV) -> IO ()) vkGetLatencyTimingsNV)
+    (castFunPtr @_ @(Ptr Queue_T -> ("pQueueTypeInfo" ::: Ptr OutOfBandQueueTypeInfoNV) -> IO ()) vkQueueNotifyOutOfBandNV)
 
diff --git a/src/Vulkan/Exception.hs b/src/Vulkan/Exception.hs
--- a/src/Vulkan/Exception.hs
+++ b/src/Vulkan/Exception.hs
@@ -43,6 +43,7 @@
   THREAD_IDLE_KHR -> "A deferred operation is not complete but there is currently no work for this thread to do at the time of this call"
   ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT -> "An operation on a swapchain created with VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT failed as it did not have exclusive full-screen access"
   ERROR_INVALID_SHADER_NV -> "One or more shaders failed to compile or link"
+  ERROR_VALIDATION_FAILED_EXT -> "A command failed because invalid usage was detected by the implementation or a validation-layer"
   ERROR_INCOMPATIBLE_DISPLAY_KHR -> "The display used by a swapchain does not use the same presentable image layout, or is incompatible in a way that prevents sharing an image"
   ERROR_OUT_OF_DATE_KHR -> "A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail"
   SUBOPTIMAL_KHR -> "A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully"
diff --git a/src/Vulkan/Extensions.hs b/src/Vulkan/Extensions.hs
--- a/src/Vulkan/Extensions.hs
+++ b/src/Vulkan/Extensions.hs
@@ -2,6 +2,7 @@
 -- No documentation found for Chapter "Extensions"
 module Vulkan.Extensions  ( module Vulkan.Extensions.Dependencies
                           , module Vulkan.Extensions.Handles
+                          , module Vulkan.Extensions.VK_AMDX_shader_enqueue
                           , module Vulkan.Extensions.VK_AMD_buffer_marker
                           , module Vulkan.Extensions.VK_AMD_device_coherent_memory
                           , module Vulkan.Extensions.VK_AMD_display_native_hdr
@@ -24,6 +25,7 @@
                           , module Vulkan.Extensions.VK_AMD_shader_info
                           , module Vulkan.Extensions.VK_AMD_shader_trinary_minmax
                           , module Vulkan.Extensions.VK_AMD_texture_gather_bias_lod
+                          , module Vulkan.Extensions.VK_ANDROID_external_format_resolve
                           , module Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer
                           , module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access
                           , module Vulkan.Extensions.VK_ARM_shader_core_builtins
@@ -32,6 +34,7 @@
                           , module Vulkan.Extensions.VK_EXT_acquire_drm_display
                           , module Vulkan.Extensions.VK_EXT_acquire_xlib_display
                           , module Vulkan.Extensions.VK_EXT_astc_decode_mode
+                          , module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state
                           , module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout
                           , module Vulkan.Extensions.VK_EXT_blend_operation_advanced
                           , module Vulkan.Extensions.VK_EXT_border_color_swizzle
@@ -44,6 +47,7 @@
                           , module Vulkan.Extensions.VK_EXT_debug_marker
                           , module Vulkan.Extensions.VK_EXT_debug_report
                           , module Vulkan.Extensions.VK_EXT_debug_utils
+                          , module Vulkan.Extensions.VK_EXT_depth_bias_control
                           , module Vulkan.Extensions.VK_EXT_depth_clamp_zero_one
                           , module Vulkan.Extensions.VK_EXT_depth_clip_control
                           , module Vulkan.Extensions.VK_EXT_depth_clip_enable
@@ -58,21 +62,25 @@
                           , module Vulkan.Extensions.VK_EXT_discard_rectangles
                           , module Vulkan.Extensions.VK_EXT_display_control
                           , module Vulkan.Extensions.VK_EXT_display_surface_counter
+                          , module Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments
                           , module Vulkan.Extensions.VK_EXT_extended_dynamic_state
                           , module Vulkan.Extensions.VK_EXT_extended_dynamic_state2
                           , module Vulkan.Extensions.VK_EXT_extended_dynamic_state3
+                          , module Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified
                           , module Vulkan.Extensions.VK_EXT_external_memory_dma_buf
                           , module Vulkan.Extensions.VK_EXT_external_memory_host
                           , module Vulkan.Extensions.VK_EXT_filter_cubic
                           , module Vulkan.Extensions.VK_EXT_fragment_density_map
                           , module Vulkan.Extensions.VK_EXT_fragment_density_map2
                           , module Vulkan.Extensions.VK_EXT_fragment_shader_interlock
+                          , module Vulkan.Extensions.VK_EXT_frame_boundary
                           , module Vulkan.Extensions.VK_EXT_full_screen_exclusive
                           , module Vulkan.Extensions.VK_EXT_global_priority
                           , module Vulkan.Extensions.VK_EXT_global_priority_query
                           , module Vulkan.Extensions.VK_EXT_graphics_pipeline_library
                           , module Vulkan.Extensions.VK_EXT_hdr_metadata
                           , module Vulkan.Extensions.VK_EXT_headless_surface
+                          , module Vulkan.Extensions.VK_EXT_host_image_copy
                           , module Vulkan.Extensions.VK_EXT_host_query_reset
                           , module Vulkan.Extensions.VK_EXT_image_2d_view_of_3d
                           , module Vulkan.Extensions.VK_EXT_image_compression_control
@@ -94,6 +102,7 @@
                           , module Vulkan.Extensions.VK_EXT_multi_draw
                           , module Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled
                           , module Vulkan.Extensions.VK_EXT_mutable_descriptor_type
+                          , module Vulkan.Extensions.VK_EXT_nested_command_buffer
                           , module Vulkan.Extensions.VK_EXT_non_seamless_cube_map
                           , module Vulkan.Extensions.VK_EXT_opacity_micromap
                           , module Vulkan.Extensions.VK_EXT_pageable_device_local_memory
@@ -169,6 +178,7 @@
                           , module Vulkan.Extensions.VK_KHR_android_surface
                           , module Vulkan.Extensions.VK_KHR_bind_memory2
                           , module Vulkan.Extensions.VK_KHR_buffer_device_address
+                          , module Vulkan.Extensions.VK_KHR_cooperative_matrix
                           , module Vulkan.Extensions.VK_KHR_copy_commands2
                           , module Vulkan.Extensions.VK_KHR_create_renderpass2
                           , module Vulkan.Extensions.VK_KHR_dedicated_allocation
@@ -209,6 +219,7 @@
                           , module Vulkan.Extensions.VK_KHR_maintenance2
                           , module Vulkan.Extensions.VK_KHR_maintenance3
                           , module Vulkan.Extensions.VK_KHR_maintenance4
+                          , module Vulkan.Extensions.VK_KHR_maintenance5
                           , module Vulkan.Extensions.VK_KHR_map_memory2
                           , module Vulkan.Extensions.VK_KHR_multiview
                           , module Vulkan.Extensions.VK_KHR_performance_query
@@ -222,6 +233,7 @@
                           , module Vulkan.Extensions.VK_KHR_ray_query
                           , module Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1
                           , module Vulkan.Extensions.VK_KHR_ray_tracing_pipeline
+                          , module Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch
                           , module Vulkan.Extensions.VK_KHR_relaxed_block_layout
                           , module Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge
                           , module Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion
@@ -256,6 +268,7 @@
                           , module Vulkan.Extensions.VK_KHR_xlib_surface
                           , module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory
                           , module Vulkan.Extensions.VK_LUNARG_direct_driver_loading
+                          , module Vulkan.Extensions.VK_MSFT_layered_driver
                           , module Vulkan.Extensions.VK_MVK_ios_surface
                           , module Vulkan.Extensions.VK_MVK_macos_surface
                           , module Vulkan.Extensions.VK_NN_vi_surface
@@ -271,10 +284,13 @@
                           , module Vulkan.Extensions.VK_NV_coverage_reduction_mode
                           , module Vulkan.Extensions.VK_NV_dedicated_allocation
                           , module Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing
+                          , module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation
                           , module Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints
                           , module Vulkan.Extensions.VK_NV_device_diagnostics_config
                           , module Vulkan.Extensions.VK_NV_device_generated_commands
+                          , module Vulkan.Extensions.VK_NV_device_generated_commands_compute
                           , module Vulkan.Extensions.VK_NV_displacement_micromap
+                          , module Vulkan.Extensions.VK_NV_extended_sparse_address_space
                           , module Vulkan.Extensions.VK_NV_external_memory
                           , module Vulkan.Extensions.VK_NV_external_memory_capabilities
                           , module Vulkan.Extensions.VK_NV_external_memory_rdma
@@ -289,6 +305,7 @@
                           , module Vulkan.Extensions.VK_NV_inherited_viewport_scissor
                           , module Vulkan.Extensions.VK_NV_linear_color_attachment
                           , module Vulkan.Extensions.VK_NV_low_latency
+                          , module Vulkan.Extensions.VK_NV_low_latency2
                           , module Vulkan.Extensions.VK_NV_memory_decompression
                           , module Vulkan.Extensions.VK_NV_mesh_shader
                           , module Vulkan.Extensions.VK_NV_optical_flow
@@ -306,8 +323,11 @@
                           , module Vulkan.Extensions.VK_NV_viewport_array2
                           , module Vulkan.Extensions.VK_NV_viewport_swizzle
                           , module Vulkan.Extensions.VK_NV_win32_keyed_mutex
+                          , module Vulkan.Extensions.VK_QCOM_filter_cubic_clamp
+                          , module Vulkan.Extensions.VK_QCOM_filter_cubic_weights
                           , module Vulkan.Extensions.VK_QCOM_fragment_density_map_offset
                           , module Vulkan.Extensions.VK_QCOM_image_processing
+                          , module Vulkan.Extensions.VK_QCOM_image_processing2
                           , module Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas
                           , module Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports
                           , module Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve
@@ -315,6 +335,8 @@
                           , module Vulkan.Extensions.VK_QCOM_render_pass_transform
                           , module Vulkan.Extensions.VK_QCOM_rotated_copy_commands
                           , module Vulkan.Extensions.VK_QCOM_tile_properties
+                          , module Vulkan.Extensions.VK_QCOM_ycbcr_degamma
+                          , module Vulkan.Extensions.VK_QNX_external_memory_screen_buffer
                           , module Vulkan.Extensions.VK_QNX_screen_surface
                           , module Vulkan.Extensions.VK_SEC_amigo_profiling
                           , module Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping
@@ -322,6 +344,7 @@
                           ) where
 import Vulkan.Extensions.Dependencies
 import Vulkan.Extensions.Handles
+import Vulkan.Extensions.VK_AMDX_shader_enqueue
 import Vulkan.Extensions.VK_AMD_buffer_marker
 import Vulkan.Extensions.VK_AMD_device_coherent_memory
 import Vulkan.Extensions.VK_AMD_display_native_hdr
@@ -344,6 +367,7 @@
 import Vulkan.Extensions.VK_AMD_shader_info
 import Vulkan.Extensions.VK_AMD_shader_trinary_minmax
 import Vulkan.Extensions.VK_AMD_texture_gather_bias_lod
+import Vulkan.Extensions.VK_ANDROID_external_format_resolve
 import Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer
 import Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access
 import Vulkan.Extensions.VK_ARM_shader_core_builtins
@@ -352,6 +376,7 @@
 import Vulkan.Extensions.VK_EXT_acquire_drm_display
 import Vulkan.Extensions.VK_EXT_acquire_xlib_display
 import Vulkan.Extensions.VK_EXT_astc_decode_mode
+import Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state
 import Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout
 import Vulkan.Extensions.VK_EXT_blend_operation_advanced
 import Vulkan.Extensions.VK_EXT_border_color_swizzle
@@ -364,6 +389,7 @@
 import Vulkan.Extensions.VK_EXT_debug_marker
 import Vulkan.Extensions.VK_EXT_debug_report
 import Vulkan.Extensions.VK_EXT_debug_utils
+import Vulkan.Extensions.VK_EXT_depth_bias_control
 import Vulkan.Extensions.VK_EXT_depth_clamp_zero_one
 import Vulkan.Extensions.VK_EXT_depth_clip_control
 import Vulkan.Extensions.VK_EXT_depth_clip_enable
@@ -378,21 +404,25 @@
 import Vulkan.Extensions.VK_EXT_discard_rectangles
 import Vulkan.Extensions.VK_EXT_display_control
 import Vulkan.Extensions.VK_EXT_display_surface_counter
+import Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state2
 import Vulkan.Extensions.VK_EXT_extended_dynamic_state3
+import Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified
 import Vulkan.Extensions.VK_EXT_external_memory_dma_buf
 import Vulkan.Extensions.VK_EXT_external_memory_host
 import Vulkan.Extensions.VK_EXT_filter_cubic
 import Vulkan.Extensions.VK_EXT_fragment_density_map
 import Vulkan.Extensions.VK_EXT_fragment_density_map2
 import Vulkan.Extensions.VK_EXT_fragment_shader_interlock
+import Vulkan.Extensions.VK_EXT_frame_boundary
 import Vulkan.Extensions.VK_EXT_full_screen_exclusive
 import Vulkan.Extensions.VK_EXT_global_priority
 import Vulkan.Extensions.VK_EXT_global_priority_query
 import Vulkan.Extensions.VK_EXT_graphics_pipeline_library
 import Vulkan.Extensions.VK_EXT_hdr_metadata
 import Vulkan.Extensions.VK_EXT_headless_surface
+import Vulkan.Extensions.VK_EXT_host_image_copy
 import Vulkan.Extensions.VK_EXT_host_query_reset
 import Vulkan.Extensions.VK_EXT_image_2d_view_of_3d
 import Vulkan.Extensions.VK_EXT_image_compression_control
@@ -414,6 +444,7 @@
 import Vulkan.Extensions.VK_EXT_multi_draw
 import Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled
 import Vulkan.Extensions.VK_EXT_mutable_descriptor_type
+import Vulkan.Extensions.VK_EXT_nested_command_buffer
 import Vulkan.Extensions.VK_EXT_non_seamless_cube_map
 import Vulkan.Extensions.VK_EXT_opacity_micromap
 import Vulkan.Extensions.VK_EXT_pageable_device_local_memory
@@ -489,6 +520,7 @@
 import Vulkan.Extensions.VK_KHR_android_surface
 import Vulkan.Extensions.VK_KHR_bind_memory2
 import Vulkan.Extensions.VK_KHR_buffer_device_address
+import Vulkan.Extensions.VK_KHR_cooperative_matrix
 import Vulkan.Extensions.VK_KHR_copy_commands2
 import Vulkan.Extensions.VK_KHR_create_renderpass2
 import Vulkan.Extensions.VK_KHR_dedicated_allocation
@@ -529,6 +561,7 @@
 import Vulkan.Extensions.VK_KHR_maintenance2
 import Vulkan.Extensions.VK_KHR_maintenance3
 import Vulkan.Extensions.VK_KHR_maintenance4
+import Vulkan.Extensions.VK_KHR_maintenance5
 import Vulkan.Extensions.VK_KHR_map_memory2
 import Vulkan.Extensions.VK_KHR_multiview
 import Vulkan.Extensions.VK_KHR_performance_query
@@ -542,6 +575,7 @@
 import Vulkan.Extensions.VK_KHR_ray_query
 import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1
 import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline
+import Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch
 import Vulkan.Extensions.VK_KHR_relaxed_block_layout
 import Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge
 import Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion
@@ -576,6 +610,7 @@
 import Vulkan.Extensions.VK_KHR_xlib_surface
 import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory
 import Vulkan.Extensions.VK_LUNARG_direct_driver_loading
+import Vulkan.Extensions.VK_MSFT_layered_driver
 import Vulkan.Extensions.VK_MVK_ios_surface
 import Vulkan.Extensions.VK_MVK_macos_surface
 import Vulkan.Extensions.VK_NN_vi_surface
@@ -591,10 +626,13 @@
 import Vulkan.Extensions.VK_NV_coverage_reduction_mode
 import Vulkan.Extensions.VK_NV_dedicated_allocation
 import Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing
+import Vulkan.Extensions.VK_NV_descriptor_pool_overallocation
 import Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints
 import Vulkan.Extensions.VK_NV_device_diagnostics_config
 import Vulkan.Extensions.VK_NV_device_generated_commands
+import Vulkan.Extensions.VK_NV_device_generated_commands_compute
 import Vulkan.Extensions.VK_NV_displacement_micromap
+import Vulkan.Extensions.VK_NV_extended_sparse_address_space
 import Vulkan.Extensions.VK_NV_external_memory
 import Vulkan.Extensions.VK_NV_external_memory_capabilities
 import Vulkan.Extensions.VK_NV_external_memory_rdma
@@ -609,6 +647,7 @@
 import Vulkan.Extensions.VK_NV_inherited_viewport_scissor
 import Vulkan.Extensions.VK_NV_linear_color_attachment
 import Vulkan.Extensions.VK_NV_low_latency
+import Vulkan.Extensions.VK_NV_low_latency2
 import Vulkan.Extensions.VK_NV_memory_decompression
 import Vulkan.Extensions.VK_NV_mesh_shader
 import Vulkan.Extensions.VK_NV_optical_flow
@@ -626,8 +665,11 @@
 import Vulkan.Extensions.VK_NV_viewport_array2
 import Vulkan.Extensions.VK_NV_viewport_swizzle
 import Vulkan.Extensions.VK_NV_win32_keyed_mutex
+import Vulkan.Extensions.VK_QCOM_filter_cubic_clamp
+import Vulkan.Extensions.VK_QCOM_filter_cubic_weights
 import Vulkan.Extensions.VK_QCOM_fragment_density_map_offset
 import Vulkan.Extensions.VK_QCOM_image_processing
+import Vulkan.Extensions.VK_QCOM_image_processing2
 import Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas
 import Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports
 import Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve
@@ -635,6 +677,8 @@
 import Vulkan.Extensions.VK_QCOM_render_pass_transform
 import Vulkan.Extensions.VK_QCOM_rotated_copy_commands
 import Vulkan.Extensions.VK_QCOM_tile_properties
+import Vulkan.Extensions.VK_QCOM_ycbcr_degamma
+import Vulkan.Extensions.VK_QNX_external_memory_screen_buffer
 import Vulkan.Extensions.VK_QNX_screen_surface
 import Vulkan.Extensions.VK_SEC_amigo_profiling
 import Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping
diff --git a/src/Vulkan/Extensions/Handles.hs b/src/Vulkan/Extensions/Handles.hs
--- a/src/Vulkan/Extensions/Handles.hs
+++ b/src/Vulkan/Extensions/Handles.hs
@@ -533,14 +533,18 @@
 -- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.getLatencyTimingsNV',
 -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE',
 -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getRefreshCycleDurationGOOGLE',
 -- 'Vulkan.Extensions.VK_EXT_display_control.getSwapchainCounterEXT',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR',
 -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.latencySleepNV',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR',
 -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT',
 -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencyMarkerNV',
+-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencySleepModeNV',
 -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',
 -- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR'
 newtype SwapchainKHR = SwapchainKHR Word64
diff --git a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
@@ -0,0 +1,4113 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_AMDX_shader_enqueue - device extension
+--
+-- == VK_AMDX_shader_enqueue
+--
+-- [__Name String__]
+--     @VK_AMDX_shader_enqueue@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     135
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
+--
+--     -   __This is a /provisional/ extension and /must/ be used with
+--         caution. See the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#boilerplate-provisional-header description>
+--         of provisional header files for enablement and stability
+--         details.__
+--
+-- [__Contact__]
+--
+--     -   Tobias Hector
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_AMDX_shader_enqueue] @tobski%0A*Here describe the issue or question you have about the VK_AMDX_shader_enqueue extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_AMDX_shader_enqueue.adoc VK_AMDX_shader_enqueue>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-07-22
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMDX_shader_enqueue.html SPV_AMDX_shader_enqueue>.
+--
+-- [__Provisional__]
+--     __This extension is /provisional/ and /should/ not be used in
+--     production applications. The functionality /may/ change in ways that
+--     break backwards compatibility between revisions, and before final
+--     release.__
+--
+-- [__Contributors__]
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Matthaeus Chajdas, AMD
+--
+--     -   Maciej Jesionowski, AMD
+--
+--     -   Robert Martin, AMD
+--
+--     -   Qun Lin, AMD
+--
+--     -   Rex Xu, AMD
+--
+--     -   Dominik Witczak, AMD
+--
+--     -   Karthik Srinivasan, AMD
+--
+--     -   Nicolai Haehnle, AMD
+--
+--     -   Stuart Smith, AMD
+--
+-- == Description
+--
+-- This extension adds the ability for developers to enqueue compute shader
+-- workgroups from other compute shaders.
+--
+-- == New Commands
+--
+-- -   'cmdDispatchGraphAMDX'
+--
+-- -   'cmdDispatchGraphIndirectAMDX'
+--
+-- -   'cmdDispatchGraphIndirectCountAMDX'
+--
+-- -   'cmdInitializeGraphScratchMemoryAMDX'
+--
+-- -   'createExecutionGraphPipelinesAMDX'
+--
+-- -   'getExecutionGraphPipelineNodeIndexAMDX'
+--
+-- -   'getExecutionGraphPipelineScratchSizeAMDX'
+--
+-- == New Structures
+--
+-- -   'DispatchGraphCountInfoAMDX'
+--
+-- -   'DispatchGraphInfoAMDX'
+--
+-- -   'ExecutionGraphPipelineCreateInfoAMDX'
+--
+-- -   'ExecutionGraphPipelineScratchSizeAMDX'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderEnqueueFeaturesAMDX'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceShaderEnqueuePropertiesAMDX'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo':
+--
+--     -   'PipelineShaderStageNodeCreateInfoAMDX'
+--
+-- == New Unions
+--
+-- -   'DeviceOrHostAddressConstAMDX'
+--
+-- == New Enum Constants
+--
+-- -   'AMDX_SHADER_ENQUEUE_EXTENSION_NAME'
+--
+-- -   'AMDX_SHADER_ENQUEUE_SPEC_VERSION'
+--
+-- -   'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--
+-- -   Extending 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint':
+--
+--     -   'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+-- is supported:
+--
+-- -   Extending 'BufferUsageFlagBits2KHR':
+--
+--     -   'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-07-22 (Tobias Hector)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX',
+-- 'DeviceOrHostAddressConstAMDX', 'DispatchGraphCountInfoAMDX',
+-- 'DispatchGraphInfoAMDX', 'ExecutionGraphPipelineCreateInfoAMDX',
+-- 'ExecutionGraphPipelineScratchSizeAMDX',
+-- 'PhysicalDeviceShaderEnqueueFeaturesAMDX',
+-- 'PhysicalDeviceShaderEnqueuePropertiesAMDX',
+-- 'PipelineShaderStageNodeCreateInfoAMDX', 'cmdDispatchGraphAMDX',
+-- 'cmdDispatchGraphIndirectAMDX', 'cmdDispatchGraphIndirectCountAMDX',
+-- 'cmdInitializeGraphScratchMemoryAMDX',
+-- 'createExecutionGraphPipelinesAMDX',
+-- 'getExecutionGraphPipelineNodeIndexAMDX',
+-- 'getExecutionGraphPipelineScratchSizeAMDX'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMDX_shader_enqueue Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_AMDX_shader_enqueue  ( getExecutionGraphPipelineScratchSizeAMDX
+                                                 , getExecutionGraphPipelineNodeIndexAMDX
+                                                 , createExecutionGraphPipelinesAMDX
+                                                 , cmdInitializeGraphScratchMemoryAMDX
+                                                 , cmdDispatchGraphAMDX
+                                                 , cmdDispatchGraphIndirectAMDX
+                                                 , cmdDispatchGraphIndirectCountAMDX
+                                                 , PhysicalDeviceShaderEnqueuePropertiesAMDX(..)
+                                                 , PhysicalDeviceShaderEnqueueFeaturesAMDX(..)
+                                                 , ExecutionGraphPipelineCreateInfoAMDX(..)
+                                                 , PipelineShaderStageNodeCreateInfoAMDX(..)
+                                                 , ExecutionGraphPipelineScratchSizeAMDX(..)
+                                                 , DispatchGraphInfoAMDX(..)
+                                                 , DispatchGraphCountInfoAMDX(..)
+                                                 , DeviceOrHostAddressConstAMDX(..)
+                                                 , BufferUsageFlags2KHR
+                                                 , BufferUsageFlagBits2KHR( BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR
+                                                                          , BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR
+                                                                          , BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR
+                                                                          , BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
+                                                                          , BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
+                                                                          , BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
+                                                                          , BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
+                                                                          , BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
+                                                                          , BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
+                                                                          , BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
+                                                                          , BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR
+                                                                          , BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
+                                                                          , BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
+                                                                          , BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
+                                                                          , BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
+                                                                          , BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
+                                                                          , BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
+                                                                          , BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
+                                                                          , BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
+                                                                          , BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
+                                                                          , ..
+                                                                          )
+                                                 , AMDX_SHADER_ENQUEUE_SPEC_VERSION
+                                                 , pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION
+                                                 , AMDX_SHADER_ENQUEUE_EXTENSION_NAME
+                                                 , pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME
+                                                 , PipelineLibraryCreateInfoKHR(..)
+                                                 , SHADER_INDEX_UNUSED_AMDX
+                                                 , pattern SHADER_INDEX_UNUSED_AMDX
+                                                 ) where
+
+import Data.Bits (Bits)
+import Data.Bits (FiniteBits)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Exception.Base (bracket)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Data.Typeable (eqT)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Alloc (callocBytes)
+import Foreign.Marshal.Alloc (free)
+import Foreign.Marshal.Utils (maybePeek)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showString)
+import Numeric (showHex)
+import Data.ByteString (packCString)
+import Data.ByteString (useAsCString)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Control.Monad.Trans.Cont (runContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+import Control.Monad.IO.Class (MonadIO)
+import Data.String (IsString)
+import Data.Type.Equality ((:~:)(Refl))
+import Data.Typeable (Typeable)
+import Foreign.C.Types (CChar)
+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 Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Word (Word64)
+import Data.ByteString (ByteString)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.CStruct.Extends (peekSomeCStruct)
+import Vulkan.CStruct.Extends (pokeSomeCStruct)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct.Extends (Chain)
+import Vulkan.Core10.Handles (CommandBuffer)
+import Vulkan.Core10.Handles (CommandBuffer(..))
+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
+import Vulkan.Core10.Handles (CommandBuffer_T)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Core10.FundamentalTypes (DeviceAddress)
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphAMDX))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphIndirectAMDX))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphIndirectCountAMDX))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdInitializeGraphScratchMemoryAMDX))
+import Vulkan.Dynamic (DeviceCmds(pVkCreateExecutionGraphPipelinesAMDX))
+import Vulkan.Dynamic (DeviceCmds(pVkGetExecutionGraphPipelineNodeIndexAMDX))
+import Vulkan.Dynamic (DeviceCmds(pVkGetExecutionGraphPipelineScratchSizeAMDX))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import Vulkan.Core10.FundamentalTypes (Flags64)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.Core10.Handles (Pipeline)
+import Vulkan.Core10.Handles (Pipeline(..))
+import Vulkan.Core10.Handles (PipelineCache)
+import Vulkan.Core10.Handles (PipelineCache(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD)
+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
+import Vulkan.Core10.Handles (PipelineLayout)
+import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)
+import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR(..))
+import Vulkan.Core10.APIConstants (SHADER_INDEX_UNUSED_AMDX)
+import Vulkan.Core10.APIConstants (pattern SHADER_INDEX_UNUSED_AMDX)
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetExecutionGraphPipelineScratchSizeAMDX
+  :: FunPtr (Ptr Device_T -> Pipeline -> Ptr ExecutionGraphPipelineScratchSizeAMDX -> IO Result) -> Ptr Device_T -> Pipeline -> Ptr ExecutionGraphPipelineScratchSizeAMDX -> IO Result
+
+-- | vkGetExecutionGraphPipelineScratchSizeAMDX - Query scratch space
+-- required to dispatch an execution graph
+--
+-- = Description
+--
+-- After this function returns, information about the scratch space
+-- required will be returned in @pSizeInfo@.
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.Device', 'ExecutionGraphPipelineScratchSizeAMDX',
+-- 'Vulkan.Core10.Handles.Pipeline'
+getExecutionGraphPipelineScratchSizeAMDX :: forall io
+                                          . (MonadIO io)
+                                         => -- | @device@ is the that @executionGraph@ was created on.
+                                            --
+                                            -- #VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter#
+                                            -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+                                            Device
+                                         -> -- | @executionGraph@ is the execution graph pipeline to query the scratch
+                                            -- space for.
+                                            --
+                                            -- #VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameter#
+                                            -- @executionGraph@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline'
+                                            -- handle
+                                            --
+                                            -- #VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parent#
+                                            -- @executionGraph@ /must/ have been created, allocated, or retrieved from
+                                            -- @device@
+                                            ("executionGraph" ::: Pipeline)
+                                         -> io (("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
+getExecutionGraphPipelineScratchSizeAMDX device
+                                           executionGraph = liftIO . evalContT $ do
+  let vkGetExecutionGraphPipelineScratchSizeAMDXPtr = pVkGetExecutionGraphPipelineScratchSizeAMDX (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetExecutionGraphPipelineScratchSizeAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetExecutionGraphPipelineScratchSizeAMDX is null" Nothing Nothing
+  let vkGetExecutionGraphPipelineScratchSizeAMDX' = mkVkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDXPtr
+  pPSizeInfo <- ContT (withZeroCStruct @ExecutionGraphPipelineScratchSizeAMDX)
+  r <- lift $ traceAroundEvent "vkGetExecutionGraphPipelineScratchSizeAMDX" (vkGetExecutionGraphPipelineScratchSizeAMDX'
+                                                                               (deviceHandle (device))
+                                                                               (executionGraph)
+                                                                               (pPSizeInfo))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pSizeInfo <- lift $ peekCStruct @ExecutionGraphPipelineScratchSizeAMDX pPSizeInfo
+  pure $ (pSizeInfo)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetExecutionGraphPipelineNodeIndexAMDX
+  :: FunPtr (Ptr Device_T -> Pipeline -> Ptr PipelineShaderStageNodeCreateInfoAMDX -> Ptr Word32 -> IO Result) -> Ptr Device_T -> Pipeline -> Ptr PipelineShaderStageNodeCreateInfoAMDX -> Ptr Word32 -> IO Result
+
+-- | vkGetExecutionGraphPipelineNodeIndexAMDX - Query internal id of a node
+-- in an execution graph
+--
+-- = Description
+--
+-- Once this function returns, the contents of @pNodeIndex@ contain the
+-- internal node index of the identified node.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140#
+--     @pNodeInfo->pName@ /must/ not be @NULL@
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141#
+--     @pNodeInfo->index@ /must/ not be
+--     'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX'
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142#
+--     There /must/ be a node in @executionGraph@ with a shader name and
+--     index equal to @pNodeInfo->pName@ and @pNodeInfo->index@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter#
+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameter#
+--     @executionGraph@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline'
+--     handle
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameter#
+--     @pNodeInfo@ /must/ be a valid pointer to a valid
+--     'PipelineShaderStageNodeCreateInfoAMDX' structure
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameter#
+--     @pNodeIndex@ /must/ be a valid pointer to a @uint32_t@ value
+--
+-- -   #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parent#
+--     @executionGraph@ /must/ have been created, allocated, or retrieved
+--     from @device@
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Pipeline',
+-- 'PipelineShaderStageNodeCreateInfoAMDX'
+getExecutionGraphPipelineNodeIndexAMDX :: forall io
+                                        . (MonadIO io)
+                                       => -- | @device@ is the that @executionGraph@ was created on.
+                                          Device
+                                       -> -- | @executionGraph@ is the execution graph pipeline to query the internal
+                                          -- node index for.
+                                          ("executionGraph" ::: Pipeline)
+                                       -> -- | @pNodeInfo@ is a pointer to a 'PipelineShaderStageNodeCreateInfoAMDX'
+                                          -- structure identifying the name and index of the node to query.
+                                          ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
+                                       -> io (("nodeIndex" ::: Word32))
+getExecutionGraphPipelineNodeIndexAMDX device
+                                         executionGraph
+                                         nodeInfo = liftIO . evalContT $ do
+  let vkGetExecutionGraphPipelineNodeIndexAMDXPtr = pVkGetExecutionGraphPipelineNodeIndexAMDX (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetExecutionGraphPipelineNodeIndexAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetExecutionGraphPipelineNodeIndexAMDX is null" Nothing Nothing
+  let vkGetExecutionGraphPipelineNodeIndexAMDX' = mkVkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDXPtr
+  pNodeInfo <- ContT $ withCStruct (nodeInfo)
+  pPNodeIndex <- ContT $ bracket (callocBytes @Word32 4) free
+  r <- lift $ traceAroundEvent "vkGetExecutionGraphPipelineNodeIndexAMDX" (vkGetExecutionGraphPipelineNodeIndexAMDX'
+                                                                             (deviceHandle (device))
+                                                                             (executionGraph)
+                                                                             pNodeInfo
+                                                                             (pPNodeIndex))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pNodeIndex <- lift $ peek @Word32 pPNodeIndex
+  pure $ (pNodeIndex)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreateExecutionGraphPipelinesAMDX
+  :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result
+
+-- | vkCreateExecutionGraphPipelinesAMDX - Creates a new execution graph
+-- pipeline object
+--
+-- = Description
+--
+-- The implementation will create a pipeline in each element of
+-- @pPipelines@ from the corresponding element of @pCreateInfos@. If
+-- creation of any pipeline fails, that pipeline will be set to
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
+-- If creation fails for a pipeline create info with a
+-- 'ExecutionGraphPipelineCreateInfoAMDX'::@flags@ value that included
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT',
+-- all pipelines at a greater index all automatically fail.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderEnqueue shaderEnqueue feature>
+--     /must/ be enabled
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125# If the
+--     @flags@ member of any element of @pCreateInfos@ contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and the @basePipelineIndex@ member of that same element is not
+--     @-1@, @basePipelineIndex@ /must/ be less than the index into
+--     @pCreateInfos@ that corresponds to that element
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09126# If the
+--     @flags@ member of any element of @pCreateInfos@ contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, the base pipeline /must/ have been created with the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'
+--     flag set
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127# If
+--     @pipelineCache@ was created with
+--     'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',
+--     host access to @pipelineCache@ /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameter#
+--     If @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipelineCache@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PipelineCache' handle
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameter#
+--     @pCreateInfos@ /must/ be a valid pointer to an array of
+--     @createInfoCount@ valid 'ExecutionGraphPipelineCreateInfoAMDX'
+--     structures
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameter#
+--     @pPipelines@ /must/ be a valid pointer to an array of
+--     @createInfoCount@ 'Vulkan.Core10.Handles.Pipeline' handles
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylength#
+--     @createInfoCount@ /must/ be greater than @0@
+--
+-- -   #VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parent# If
+--     @pipelineCache@ is a valid handle, it /must/ have been created,
+--     allocated, or retrieved from @device@
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+--     -   'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'ExecutionGraphPipelineCreateInfoAMDX',
+-- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'
+createExecutionGraphPipelinesAMDX :: forall io
+                                   . (MonadIO io)
+                                  => -- | @device@ is the logical device that creates the execution graph
+                                     -- pipelines.
+                                     Device
+                                  -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+                                     -- indicating that pipeline caching is disabled; or the handle of a valid
+                                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>
+                                     -- object, in which case use of that cache is enabled for the duration of
+                                     -- the command.
+                                     PipelineCache
+                                  -> -- | @pCreateInfos@ is a pointer to an array of
+                                     -- 'ExecutionGraphPipelineCreateInfoAMDX' structures.
+                                     ("createInfos" ::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
+                                  -> -- | @pAllocator@ controls host memory allocation as described in the
+                                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
+                                     -- chapter.
+                                     ("allocator" ::: Maybe AllocationCallbacks)
+                                  -> io (Result, ("pipelines" ::: Vector Pipeline))
+createExecutionGraphPipelinesAMDX device
+                                    pipelineCache
+                                    createInfos
+                                    allocator = liftIO . evalContT $ do
+  let vkCreateExecutionGraphPipelinesAMDXPtr = pVkCreateExecutionGraphPipelinesAMDX (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreateExecutionGraphPipelinesAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateExecutionGraphPipelinesAMDX is null" Nothing Nothing
+  let vkCreateExecutionGraphPipelinesAMDX' = mkVkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDXPtr
+  pPCreateInfos <- ContT $ allocaBytes @(ExecutionGraphPipelineCreateInfoAMDX _) ((Data.Vector.length (createInfos)) * 64)
+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (64 * (i)) :: Ptr (ExecutionGraphPipelineCreateInfoAMDX _))) (e) . ($ ())) (createInfos)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free
+  r <- lift $ traceAroundEvent "vkCreateExecutionGraphPipelinesAMDX" (vkCreateExecutionGraphPipelinesAMDX'
+                                                                        (deviceHandle (device))
+                                                                        (pipelineCache)
+                                                                        ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))
+                                                                        (forgetExtensions (pPCreateInfos))
+                                                                        pAllocator
+                                                                        (pPPipelines))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
+  pure $ (r, pPipelines)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdInitializeGraphScratchMemoryAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> IO ()
+
+-- | vkCmdInitializeGraphScratchMemoryAMDX - Initialize scratch memory for an
+-- execution graph
+--
+-- = Description
+--
+-- This command /must/ be called before using @scratch@ to dispatch the
+-- currently bound execution graph pipeline.
+--
+-- Execution of this command /may/ modify any memory locations in the range
+-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in
+-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by
+-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+-- execution graph pipeline. Accesses to this memory range are performed in
+-- the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT'
+-- pipeline stage with the
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT'
+-- access flags.
+--
+-- If any portion of @scratch@ is modified by any command other than
+-- 'cmdDispatchGraphAMDX', 'cmdDispatchGraphIndirectAMDX',
+-- 'cmdDispatchGraphIndirectCountAMDX', or
+-- 'cmdInitializeGraphScratchMemoryAMDX' with the same execution graph, it
+-- /must/ be reinitialized for the execution graph again before dispatching
+-- against it.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143# @scratch@
+--     /must/ be the device address of an allocated memory range at least
+--     as large as the value of
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@size@ returned by
+--     'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+--     execution graph pipeline.
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09144# @scratch@
+--     /must/ be a multiple of 64
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-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-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-cmdpool#
+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpass# This command
+--     /must/ only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocoding# This
+--     command /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdInitializeGraphScratchMemoryAMDX-bufferlevel#
+--     @commandBuffer@ /must/ be a primary
+--     'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == Host Synchronization
+--
+-- -   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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
+cmdInitializeGraphScratchMemoryAMDX :: forall io
+                                     . (MonadIO io)
+                                    => -- | @commandBuffer@ is the command buffer into which the command will be
+                                       -- recorded.
+                                       CommandBuffer
+                                    -> -- | @scratch@ is a pointer to the scratch memory to be initialized.
+                                       ("scratch" ::: DeviceAddress)
+                                    -> io ()
+cmdInitializeGraphScratchMemoryAMDX commandBuffer scratch = liftIO $ do
+  let vkCmdInitializeGraphScratchMemoryAMDXPtr = pVkCmdInitializeGraphScratchMemoryAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdInitializeGraphScratchMemoryAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdInitializeGraphScratchMemoryAMDX is null" Nothing Nothing
+  let vkCmdInitializeGraphScratchMemoryAMDX' = mkVkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDXPtr
+  traceAroundEvent "vkCmdInitializeGraphScratchMemoryAMDX" (vkCmdInitializeGraphScratchMemoryAMDX'
+                                                              (commandBufferHandle (commandBuffer))
+                                                              (scratch))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchGraphAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()
+
+-- | vkCmdDispatchGraphAMDX - Dispatch an execution graph
+--
+-- = Description
+--
+-- When this command is executed, the nodes specified in @pCountInfo@ are
+-- executed. Nodes executed as part of this command are not implicitly
+-- synchronized in any way against each other once they are dispatched.
+--
+-- For this command, all device\/host pointers in substructures are treated
+-- as host pointers and read only during host execution of this command.
+-- Once this command returns, no reference to the original pointers is
+-- retained.
+--
+-- Execution of this command /may/ modify any memory locations in the range
+-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in
+-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by
+-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+-- execution graph pipeline Accesses to this memory range are performed in
+-- the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT'
+-- pipeline stage with the
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT'
+-- access flags.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-None-08601# For each push constant that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-vkCmdDispatchGraphAMDX-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphAMDX-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphAMDX-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDispatchGraphAMDX-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchGraphAMDX-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDispatchGraphAMDX-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-commandBuffer-09181# @commandBuffer@
+--     /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182# @commandBuffer@
+--     /must/ be a primary command buffer
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-scratch-09183# @scratch@ /must/ be the
+--     device address of an allocated memory range at least as large as the
+--     value of 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ returned by
+--     'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+--     execution graph pipeline
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-scratch-09184# @scratch@ /must/ be a
+--     device address within a 'Vulkan.Core10.Handles.Buffer' created with
+--     the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     or 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' flag
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-scratch-09185# Device memory in the
+--     range [@scratch@,@scratch@
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@size@) /must/ have been
+--     initialized with 'cmdInitializeGraphScratchMemoryAMDX' using the
+--     currently bound execution graph pipeline, and not modified after
+--     that by anything other than another execution graph dispatch command
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-maxComputeWorkGroupCount-09186#
+--     Execution of this command /must/ not cause a node to be dispatched
+--     with a larger number of workgroups than that specified by either a
+--     @MaxNumWorkgroupsAMDX@ decoration in the dispatched node or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkGroupCount maxComputeWorkGroupCount>
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-maxExecutionGraphShaderPayloadCount-09187#
+--     Execution of this command /must/ not cause any shader to initialize
+--     more than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxExecutionGraphShaderPayloadCount maxExecutionGraphShaderPayloadCount>
+--     output payloads
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-NodeMaxPayloadsAMDX-09188# Execution of
+--     this command /must/ not cause any shader that declares
+--     @NodeMaxPayloadsAMDX@ to initialize more output payloads than
+--     specified by the max number of payloads for that decoration. This
+--     requirement applies to each @NodeMaxPayloadsAMDX@ decoration
+--     separately
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145# @pCountInfo->infos@
+--     /must/ be a host pointer to a memory allocation at least as large as
+--     the product of @count@ and @stride@
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-infos-09146# Host memory locations at
+--     indexes in the range [@infos@, @infos@ + (@count@*@stride@)), at a
+--     granularity of @stride@ /must/ contain valid 'DispatchGraphInfoAMDX'
+--     structures in the first 24 bytes
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@
+--     /must/ be a host pointer to a memory allocation at least as large as
+--     the product of @payloadCount@ and @payloadStride@
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09148# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@,
+--     @nodeIndex@ /must/ be a valid node index in the currently bound
+--     execution graph pipeline, as returned by
+--     'getExecutionGraphPipelineNodeIndexAMDX'
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09149# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, host
+--     memory locations at indexes in the range [@payloads@, @payloads@ +
+--     (@payloadCount@ * @payloadStride@)), at a granularity of
+--     @payloadStride@ /must/ contain a payload matching the size of the
+--     input payload expected by the node in @nodeIndex@ in the first bytes
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameter# @pCountInfo@
+--     /must/ be a valid pointer to a valid 'DispatchGraphCountInfoAMDX'
+--     structure
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-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-vkCmdDispatchGraphAMDX-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-renderpass# This command /must/ only be
+--     called outside of a render pass instance
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDispatchGraphAMDX-bufferlevel# @commandBuffer@ /must/ be
+--     a primary 'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == Host Synchronization
+--
+-- -   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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
+-- 'DispatchGraphCountInfoAMDX'
+cmdDispatchGraphAMDX :: forall io
+                      . (MonadIO io)
+                     => -- | @commandBuffer@ is the command buffer into which the command will be
+                        -- recorded.
+                        CommandBuffer
+                     -> -- | @scratch@ is a pointer to the scratch memory to be used.
+                        ("scratch" ::: DeviceAddress)
+                     -> -- | @pCountInfo@ is a host pointer to a 'DispatchGraphCountInfoAMDX'
+                        -- structure defining the nodes which will be initially executed.
+                        DispatchGraphCountInfoAMDX
+                     -> io ()
+cmdDispatchGraphAMDX commandBuffer scratch countInfo = liftIO . evalContT $ do
+  let vkCmdDispatchGraphAMDXPtr = pVkCmdDispatchGraphAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdDispatchGraphAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchGraphAMDX is null" Nothing Nothing
+  let vkCmdDispatchGraphAMDX' = mkVkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDXPtr
+  pCountInfo <- ContT $ withCStruct (countInfo)
+  lift $ traceAroundEvent "vkCmdDispatchGraphAMDX" (vkCmdDispatchGraphAMDX'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (scratch)
+                                                      pCountInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchGraphIndirectAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()
+
+-- | vkCmdDispatchGraphIndirectAMDX - Dispatch an execution graph with node
+-- and payload parameters read on the device
+--
+-- = Description
+--
+-- When this command is executed, the nodes specified in @pCountInfo@ are
+-- executed. Nodes executed as part of this command are not implicitly
+-- synchronized in any way against each other once they are dispatched.
+--
+-- For this command, all device\/host pointers in substructures are treated
+-- as device pointers and read during device execution of this command. The
+-- allocation and contents of these pointers only needs to be valid during
+-- device execution. All of these addresses will be read in the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT'
+-- pipeline stage with the
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT'
+-- access flag.
+--
+-- Execution of this command /may/ modify any memory locations in the range
+-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in
+-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by
+-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+-- execution graph pipeline. Accesses to this memory range are performed in
+-- the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT'
+-- pipeline stage with the
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT'
+-- access flags.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-08600# For each set /n/
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-08604# Descriptors in
+--     bound descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-vkCmdDispatchGraphIndirectAMDX-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphIndirectAMDX-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphIndirectAMDX-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDispatchGraphIndirectAMDX-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182#
+--     @commandBuffer@ /must/ be a primary command buffer
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183# @scratch@ /must/
+--     be the device address of an allocated memory range at least as large
+--     as the value of 'ExecutionGraphPipelineScratchSizeAMDX'::@size@
+--     returned by 'ExecutionGraphPipelineScratchSizeAMDX' for the
+--     currently bound execution graph pipeline
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09184# @scratch@ /must/
+--     be a device address within a 'Vulkan.Core10.Handles.Buffer' created
+--     with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     or 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09185# Device memory in
+--     the range [@scratch@,@scratch@
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@size@) /must/ have been
+--     initialized with 'cmdInitializeGraphScratchMemoryAMDX' using the
+--     currently bound execution graph pipeline, and not modified after
+--     that by anything other than another execution graph dispatch command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-maxComputeWorkGroupCount-09186#
+--     Execution of this command /must/ not cause a node to be dispatched
+--     with a larger number of workgroups than that specified by either a
+--     @MaxNumWorkgroupsAMDX@ decoration in the dispatched node or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkGroupCount maxComputeWorkGroupCount>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-maxExecutionGraphShaderPayloadCount-09187#
+--     Execution of this command /must/ not cause any shader to initialize
+--     more than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxExecutionGraphShaderPayloadCount maxExecutionGraphShaderPayloadCount>
+--     output payloads
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-NodeMaxPayloadsAMDX-09188#
+--     Execution of this command /must/ not cause any shader that declares
+--     @NodeMaxPayloadsAMDX@ to initialize more output payloads than
+--     specified by the max number of payloads for that decoration. This
+--     requirement applies to each @NodeMaxPayloadsAMDX@ decoration
+--     separately
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150#
+--     @pCountInfo->infos@ /must/ be a device pointer to a memory
+--     allocation at least as large as the product of @count@ and @stride@
+--     when this command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09151#
+--     @pCountInfo->infos@ /must/ be a device address within a
+--     'Vulkan.Core10.Handles.Buffer' created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152#
+--     @pCountInfo->infos@ /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment executionGraphDispatchAddressAlignment>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-infos-09153# Device memory
+--     locations at indexes in the range [@infos@, @infos@ +
+--     (@count@*@stride@)), at a granularity of @stride@ /must/ contain
+--     valid 'DispatchGraphInfoAMDX' structures in the first 24 bytes when
+--     this command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@
+--     /must/ be a device pointer to a memory allocation at least as large
+--     as the product of @payloadCount@ and @payloadStride@ when this
+--     command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09155# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@
+--     /must/ be a device address within a 'Vulkan.Core10.Handles.Buffer'
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09156# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@
+--     /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment executionGraphDispatchAddressAlignment>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@,
+--     @nodeIndex@ /must/ be a valid node index in the currently bound
+--     execution graph pipeline, as returned by
+--     'getExecutionGraphPipelineNodeIndexAMDX' when this command is
+--     executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09158# For each
+--     'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, device
+--     memory locations at indexes in the range [@payloads@, @payloads@ +
+--     (@payloadCount@ * @payloadStride@)), at a granularity of
+--     @payloadStride@ /must/ contain a payload matching the size of the
+--     input payload expected by the node in @nodeIndex@ in the first bytes
+--     when this command is executed on the device
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameter#
+--     @pCountInfo@ /must/ be a valid pointer to a valid
+--     'DispatchGraphCountInfoAMDX' structure
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-renderpass# This command /must/
+--     only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-bufferlevel# @commandBuffer@
+--     /must/ be a primary 'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == Host Synchronization
+--
+-- -   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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
+-- 'DispatchGraphCountInfoAMDX'
+cmdDispatchGraphIndirectAMDX :: forall io
+                              . (MonadIO io)
+                             => -- | @commandBuffer@ is the command buffer into which the command will be
+                                -- recorded.
+                                CommandBuffer
+                             -> -- | @scratch@ is a pointer to the scratch memory to be used.
+                                ("scratch" ::: DeviceAddress)
+                             -> -- | @pCountInfo@ is a host pointer to a 'DispatchGraphCountInfoAMDX'
+                                -- structure defining the nodes which will be initially executed.
+                                DispatchGraphCountInfoAMDX
+                             -> io ()
+cmdDispatchGraphIndirectAMDX commandBuffer
+                               scratch
+                               countInfo = liftIO . evalContT $ do
+  let vkCmdDispatchGraphIndirectAMDXPtr = pVkCmdDispatchGraphIndirectAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdDispatchGraphIndirectAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchGraphIndirectAMDX is null" Nothing Nothing
+  let vkCmdDispatchGraphIndirectAMDX' = mkVkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDXPtr
+  pCountInfo <- ContT $ withCStruct (countInfo)
+  lift $ traceAroundEvent "vkCmdDispatchGraphIndirectAMDX" (vkCmdDispatchGraphIndirectAMDX'
+                                                              (commandBufferHandle (commandBuffer))
+                                                              (scratch)
+                                                              pCountInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDispatchGraphIndirectCountAMDX
+  :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> IO ()
+
+-- | vkCmdDispatchGraphIndirectCountAMDX - Dispatch an execution graph with
+-- all parameters read on the device
+--
+-- = Description
+--
+-- When this command is executed, the nodes specified in @countInfo@ are
+-- executed. Nodes executed as part of this command are not implicitly
+-- synchronized in any way against each other once they are dispatched.
+--
+-- For this command, all pointers in substructures are treated as device
+-- pointers and read during device execution of this command. The
+-- allocation and contents of these pointers only needs to be valid during
+-- device execution. All of these addresses will be read in the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT'
+-- pipeline stage with the
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT'
+-- access flag.
+--
+-- Execution of this command /may/ modify any memory locations in the range
+-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in
+-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by
+-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+-- execution graph pipeline. Accesses to this memory range are performed in
+-- the
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT'
+-- pipeline stage with the
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and
+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT'
+-- access flags.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-cubicRangeClamp-09212# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-08600# For each set
+--     /n/ that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-08604# Descriptors in
+--     bound descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-08605# If a
+--     descriptor is dynamically used with a
+--     'Vulkan.Extensions.Handles.ShaderEXT' created with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608# If a pipeline
+--     is bound to the pipeline bind point used by this command, 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-vkCmdDispatchGraphIndirectCountAMDX-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphIndirectCountAMDX-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphIndirectCountAMDX-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDispatchGraphIndirectCountAMDX-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchGraphIndirectCountAMDX-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09181#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09182#
+--     @commandBuffer@ /must/ be a primary command buffer
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09183# @scratch@
+--     /must/ be the device address of an allocated memory range at least
+--     as large as the value of
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@size@ returned by
+--     'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound
+--     execution graph pipeline
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09184# @scratch@
+--     /must/ be a device address within a 'Vulkan.Core10.Handles.Buffer'
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--     or 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09185# Device
+--     memory in the range [@scratch@,@scratch@
+--     'ExecutionGraphPipelineScratchSizeAMDX'::@size@) /must/ have been
+--     initialized with 'cmdInitializeGraphScratchMemoryAMDX' using the
+--     currently bound execution graph pipeline, and not modified after
+--     that by anything other than another execution graph dispatch command
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-maxComputeWorkGroupCount-09186#
+--     Execution of this command /must/ not cause a node to be dispatched
+--     with a larger number of workgroups than that specified by either a
+--     @MaxNumWorkgroupsAMDX@ decoration in the dispatched node or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkGroupCount maxComputeWorkGroupCount>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-maxExecutionGraphShaderPayloadCount-09187#
+--     Execution of this command /must/ not cause any shader to initialize
+--     more than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxExecutionGraphShaderPayloadCount maxExecutionGraphShaderPayloadCount>
+--     output payloads
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-NodeMaxPayloadsAMDX-09188#
+--     Execution of this command /must/ not cause any shader that declares
+--     @NodeMaxPayloadsAMDX@ to initialize more output payloads than
+--     specified by the max number of payloads for that decoration. This
+--     requirement applies to each @NodeMaxPayloadsAMDX@ decoration
+--     separately
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09159#
+--     @countInfo@ /must/ be a device pointer to a memory allocation
+--     containing a valid 'DispatchGraphCountInfoAMDX' structure when this
+--     command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09160#
+--     @countInfo@ /must/ be a device address within a
+--     'Vulkan.Core10.Handles.Buffer' created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09161#
+--     @countInfo@ /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment executionGraphDispatchAddressAlignment>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09162#
+--     @countInfo->infos@ /must/ be a device pointer to a memory allocation
+--     at least as large as the product of @count@ and @stride@ when this
+--     command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09163#
+--     @countInfo->infos@ /must/ be a device address within a
+--     'Vulkan.Core10.Handles.Buffer' created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164#
+--     @countInfo->infos@ /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment executionGraphDispatchAddressAlignment>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-infos-09165# Device memory
+--     locations at indexes in the range [@infos@, @infos@ +
+--     (@count@*@stride@)), at a granularity of @stride@ /must/ contain
+--     valid 'DispatchGraphInfoAMDX' structures in the first 24 bytes when
+--     this command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166# For each
+--     'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @payloads@
+--     /must/ be a device pointer to a memory allocation at least as large
+--     as the product of @payloadCount@ and @payloadStride@ when this
+--     command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09167# For each
+--     'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @payloads@
+--     /must/ be a device address within a 'Vulkan.Core10.Handles.Buffer'
+--     created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09168# For each
+--     'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @payloads@
+--     /must/ be a multiple of
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment executionGraphDispatchAddressAlignment>
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169# For each
+--     'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @nodeIndex@
+--     /must/ be a valid node index in the currently bound execution graph
+--     pipeline, as returned by 'getExecutionGraphPipelineNodeIndexAMDX'
+--     when this command is executed on the device
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09170# For each
+--     'DispatchGraphInfoAMDX' structure in @countInfo->infos@, device
+--     memory locations at indexes in the range [@payloads@, @payloads@ +
+--     (@payloadCount@ * @payloadStride@)), at a granularity of
+--     @payloadStride@ /must/ contain a payload matching the size of the
+--     input payload expected by the node in @nodeIndex@ in the first bytes
+--     when this command is executed on the device
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-renderpass# This command
+--     /must/ only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-bufferlevel#
+--     @commandBuffer@ /must/ be a primary
+--     'Vulkan.Core10.Handles.CommandBuffer'
+--
+-- == Host Synchronization
+--
+-- -   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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
+cmdDispatchGraphIndirectCountAMDX :: forall io
+                                   . (MonadIO io)
+                                  => -- | @commandBuffer@ is the command buffer into which the command will be
+                                     -- recorded.
+                                     CommandBuffer
+                                  -> -- | @scratch@ is a pointer to the scratch memory to be used.
+                                     ("scratch" ::: DeviceAddress)
+                                  -> -- | @countInfo@ is a device address of a 'DispatchGraphCountInfoAMDX'
+                                     -- structure defining the nodes which will be initially executed.
+                                     ("countInfo" ::: DeviceAddress)
+                                  -> io ()
+cmdDispatchGraphIndirectCountAMDX commandBuffer scratch countInfo = liftIO $ do
+  let vkCmdDispatchGraphIndirectCountAMDXPtr = pVkCmdDispatchGraphIndirectCountAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDispatchGraphIndirectCountAMDXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchGraphIndirectCountAMDX is null" Nothing Nothing
+  let vkCmdDispatchGraphIndirectCountAMDX' = mkVkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDXPtr
+  traceAroundEvent "vkCmdDispatchGraphIndirectCountAMDX" (vkCmdDispatchGraphIndirectCountAMDX'
+                                                            (commandBufferHandle (commandBuffer))
+                                                            (scratch)
+                                                            (countInfo))
+  pure $ ()
+
+
+-- | VkPhysicalDeviceShaderEnqueuePropertiesAMDX - Structure describing
+-- shader enqueue limits of an implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceShaderEnqueuePropertiesAMDX' structure
+-- describe the following limits:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceShaderEnqueuePropertiesAMDX' 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_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceShaderEnqueuePropertiesAMDX = PhysicalDeviceShaderEnqueuePropertiesAMDX
+  { -- | #limits-maxExecutionGraphDepth# @maxExecutionGraphDepth@ defines the
+    -- maximum node chain depth in the graph. The dispatched node is at depth 1
+    -- and the node enqueued by it is at depth 2, and so on. If a node enqueues
+    -- itself, each recursive enqueue increases the depth by 1 as well.
+    maxExecutionGraphDepth :: Word32
+  , -- | #limits-maxExecutionGraphShaderOutputNodes#
+    -- @maxExecutionGraphShaderOutputNodes@ specifies the maximum number of
+    -- unique nodes that can be dispatched from a single shader, and must be at
+    -- least 256.
+    maxExecutionGraphShaderOutputNodes :: Word32
+  , -- | #limits-maxExecutionGraphShaderPayloadSize#
+    -- @maxExecutionGraphShaderPayloadSize@ specifies the maximum total size of
+    -- payload declarations in a shader. For any payload declarations that
+    -- share resources, indicated by @NodeSharesPayloadLimitsWithAMDX@
+    -- decorations, the maximum size of each set of shared payload declarations
+    -- is taken. The sum of each shared set’s maximum size and the size of each
+    -- unshared payload is counted against this limit.
+    maxExecutionGraphShaderPayloadSize :: Word32
+  , -- | #limits-maxExecutionGraphShaderPayloadCount#
+    -- @maxExecutionGraphShaderPayloadCount@ specifies the maximum number of
+    -- output payloads that can be initialized in a single workgroup.
+    maxExecutionGraphShaderPayloadCount :: Word32
+  , -- | #limits-executionGraphDispatchAddressAlignment#
+    -- @executionGraphDispatchAddressAlignment@ specifies the alignment of
+    -- non-scratch 'Vulkan.Core10.FundamentalTypes.DeviceAddress' arguments
+    -- consumed by graph dispatch commands.
+    executionGraphDispatchAddressAlignment :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceShaderEnqueuePropertiesAMDX)
+#endif
+deriving instance Show PhysicalDeviceShaderEnqueuePropertiesAMDX
+
+instance ToCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceShaderEnqueuePropertiesAMDX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxExecutionGraphDepth)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxExecutionGraphShaderOutputNodes)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxExecutionGraphShaderPayloadSize)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxExecutionGraphShaderPayloadCount)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (executionGraphDispatchAddressAlignment)
+    f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX where
+  peekCStruct p = do
+    maxExecutionGraphDepth <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    maxExecutionGraphShaderOutputNodes <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    maxExecutionGraphShaderPayloadSize <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    maxExecutionGraphShaderPayloadCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    executionGraphDispatchAddressAlignment <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    pure $ PhysicalDeviceShaderEnqueuePropertiesAMDX
+             maxExecutionGraphDepth
+             maxExecutionGraphShaderOutputNodes
+             maxExecutionGraphShaderPayloadSize
+             maxExecutionGraphShaderPayloadCount
+             executionGraphDispatchAddressAlignment
+
+instance Storable PhysicalDeviceShaderEnqueuePropertiesAMDX where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderEnqueuePropertiesAMDX where
+  zero = PhysicalDeviceShaderEnqueuePropertiesAMDX
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceShaderEnqueueFeaturesAMDX - Structure describing whether
+-- shader enqueue within execution graphs are supported by the
+-- implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceShaderEnqueueFeaturesAMDX' 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. 'PhysicalDeviceShaderEnqueueFeaturesAMDX' /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_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceShaderEnqueueFeaturesAMDX = PhysicalDeviceShaderEnqueueFeaturesAMDX
+  { -- | #features-shaderEnqueue# @shaderEnqueue@ indicates whether the
+    -- implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs execution graphs>.
+    shaderEnqueue :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceShaderEnqueueFeaturesAMDX)
+#endif
+deriving instance Show PhysicalDeviceShaderEnqueueFeaturesAMDX
+
+instance ToCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceShaderEnqueueFeaturesAMDX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderEnqueue))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  peekCStruct p = do
+    shaderEnqueue <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceShaderEnqueueFeaturesAMDX
+             (bool32ToBool shaderEnqueue)
+
+instance Storable PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderEnqueueFeaturesAMDX where
+  zero = PhysicalDeviceShaderEnqueueFeaturesAMDX
+           zero
+
+
+-- | VkExecutionGraphPipelineCreateInfoAMDX - Structure specifying parameters
+-- of a newly created execution graph pipeline
+--
+-- = Description
+--
+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are
+-- described in more detail in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
+--
+-- Each shader stage provided when creating an execution graph pipeline
+-- (including those in libraries) is associated with a name and an index,
+-- determined by the inclusion or omission of a
+-- 'PipelineShaderStageNodeCreateInfoAMDX' structure in its @pNext@ chain.
+--
+-- In addition to the shader name and index, an internal \"node index\" is
+-- also generated for each node, which can be queried with
+-- 'getExecutionGraphPipelineNodeIndexAMDX', and is used exclusively for
+-- initial dispatch of an execution graph.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07984# If @flags@
+--     contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
+--     a valid execution graph 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07985# If @flags@
+--     contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, and @basePipelineHandle@ is
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/
+--     be a valid index into the calling command’s @pCreateInfos@ parameter
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07986# If @flags@
+--     contains the
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
+--     flag, @basePipelineIndex@ /must/ be -1 or @basePipelineHandle@
+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07987# If a push
+--     constant block is declared in a shader, a push constant range in
+--     @layout@ /must/ match both the shader stage and range
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07988# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader, a descriptor slot in @layout@ /must/ match
+--     the shader stage
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07990# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader, and the descriptor type is not
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a
+--     descriptor slot in @layout@ /must/ match the descriptor type
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07991# If a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources resource variables>
+--     is declared in a shader as an array, a descriptor slot in @layout@
+--     /must/ match the descriptor count
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03365# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03366# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03367# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03368# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03369# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03370# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03576# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-04945# @flags@
+--     /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007# If @flags@
+--     includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008# If @flags@
+--     includes
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
+--     then the @pNext@ chain /must/ include a pointer to a valid instance
+--     of
+--     'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV'
+--     specifying the address where the pipeline’s metadata will be saved
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>
+--     feature is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'
+--     or
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128# The
+--     @stage@ member of any element of @pStages@ /must/ be
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-09129# The
+--     shader code for the entry point identified by each element of
+--     @pStages@ and the rest of the state identified by this structure
+--     /must/ adhere to the pipeline linking rules described in the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>
+--     chapter
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09130# @layout@
+--     /must/ be
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>
+--     with the layout of the shaders specified in @pStages@
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131# If
+--     @pLibraryInfo@ is not @NULL@, each element of its @pLibraries@
+--     member /must/ have been created with a @layout@ that is compatible
+--     with the @layout@ in this pipeline
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132# The
+--     number of resources in @layout@ accessible to each shader stage that
+--     is used by the pipeline /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133# If
+--     @pLibraryInfo@ is not @NULL@, each element of
+--     @pLibraryInfo->libraries@ /must/ be either a compute pipeline or an
+--     execution graph pipeline
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09134# There
+--     /must/ be no two nodes in the pipeline that share both the same
+--     shader name and index, as specified by
+--     'PipelineShaderStageNodeCreateInfoAMDX'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135# There
+--     /must/ be no two nodes in the pipeline that share the same shader
+--     name and have input payload declarations with different sizes
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09136# There
+--     /must/ be no two nodes in the pipeline that share the same name but
+--     have different execution models
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137#
+--     There /must/ be no two nodes in the pipeline that share the same
+--     name where one includes @CoalescedInputCountAMDX@ and the other does
+--     not
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-StaticNumWorkgroupsAMDX-09138#
+--     There /must/ be no two nodes in the pipeline that share the same
+--     name where one includes @StaticNumWorkgroupsAMDX@ and the other does
+--     not
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139#
+--     If an output payload declared in any shader in the pipeline has a
+--     @PayloadNodeNameAMDX@ decoration with a @Node@ @Name@ that matches
+--     the shader name of any other node in the graph, the size of the
+--     output payload /must/ match the size of the input payload in the
+--     matching node
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pNext-pNext# Each
+--     @pNext@ member of any structure (including this one) in the @pNext@
+--     chain /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD'
+--     or
+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique# The
+--     @sType@ value of each struct in the @pNext@ chain /must/ be unique
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-parameter#
+--     @flags@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+--     values
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameter# If
+--     @stageCount@ is not @0@, and @pStages@ is not @NULL@, @pStages@
+--     /must/ be a valid pointer to an array of @stageCount@ valid
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameter#
+--     If @pLibraryInfo@ is not @NULL@, @pLibraryInfo@ /must/ be a valid
+--     pointer to a valid
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
+--     structure
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameter#
+--     @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'
+--     handle
+--
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent# Both of
+--     @basePipelineHandle@, and @layout@ that are valid handles of
+--     non-ignored parameters /must/ have been created, allocated, or
+--     retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',
+-- 'Vulkan.Core10.Handles.PipelineLayout',
+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createExecutionGraphPipelinesAMDX'
+data ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]) = ExecutionGraphPipelineCreateInfoAMDX
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @flags@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'
+    -- specifying how the pipeline will be generated.
+    flags :: PipelineCreateFlags
+  , -- | @stageCount@ is the number of entries in the @pStages@ array.
+    stageCount :: Word32
+  , -- | @pStages@ is a pointer to an array of @stageCount@
+    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures
+    -- describing the set of the shader stages to be included in the execution
+    -- graph pipeline.
+    stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
+  , -- | @pLibraryInfo@ is a pointer to a
+    -- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
+    -- structure defining pipeline libraries to include.
+    libraryInfo :: Maybe PipelineLibraryCreateInfoKHR
+  , -- | @layout@ is the description of binding locations used by both the
+    -- pipeline and descriptor sets used with the pipeline.
+    layout :: PipelineLayout
+  , -- | @basePipelineHandle@ is a pipeline to derive from
+    basePipelineHandle :: Pipeline
+  , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use
+    -- as a pipeline to derive from
+    basePipelineIndex :: Int32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (ExecutionGraphPipelineCreateInfoAMDX es)
+
+instance Extensible ExecutionGraphPipelineCreateInfoAMDX where
+  extensibleTypeName = "ExecutionGraphPipelineCreateInfoAMDX"
+  setNext ExecutionGraphPipelineCreateInfoAMDX{..} next' = ExecutionGraphPipelineCreateInfoAMDX{next = next', ..}
+  getNext ExecutionGraphPipelineCreateInfoAMDX{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ExecutionGraphPipelineCreateInfoAMDX e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f
+    | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
+    | otherwise = Nothing
+
+instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es
+         , PokeChain es ) => ToCStruct (ExecutionGraphPipelineCreateInfoAMDX es) where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ExecutionGraphPipelineCreateInfoAMDX{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) (flags)
+    let pStagesLength = Data.Vector.length $ (stages)
+    stageCount'' <- lift $ if (stageCount) == 0
+      then pure $ fromIntegral pStagesLength
+      else do
+        unless (fromIntegral pStagesLength == (stageCount) || pStagesLength == 0) $
+          throwIO $ IOError Nothing InvalidArgument "" "pStages must be empty or have 'stageCount' elements" Nothing Nothing
+        pure (stageCount)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (stageCount'')
+    pStages'' <- if Data.Vector.null (stages)
+      then pure nullPtr
+      else do
+        pPStages <- ContT $ allocaBytes @(PipelineShaderStageCreateInfo _) (((Data.Vector.length (stages))) * 48)
+        Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPStages `plusPtr` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _))) (e) . ($ ())) ((stages))
+        pure $ pPStages
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _)))) pStages''
+    pLibraryInfo'' <- case (libraryInfo) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ withCStruct (j)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineLibraryCreateInfoKHR))) pLibraryInfo''
+    lift $ poke ((p `plusPtr` 40 :: Ptr PipelineLayout)) (layout)
+    lift $ poke ((p `plusPtr` 48 :: Ptr Pipeline)) (basePipelineHandle)
+    lift $ poke ((p `plusPtr` 56 :: Ptr Int32)) (basePipelineIndex)
+    lift $ f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 40 :: Ptr PipelineLayout)) (zero)
+    lift $ poke ((p `plusPtr` 56 :: Ptr Int32)) (zero)
+    lift $ f
+
+instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es
+         , PeekChain es ) => FromCStruct (ExecutionGraphPipelineCreateInfoAMDX es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
+    stageCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
+    let pStagesLength = if pStages == nullPtr then 0 else (fromIntegral stageCount)
+    pStages' <- generateM pStagesLength (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
+    pLibraryInfo <- peek @(Ptr PipelineLibraryCreateInfoKHR) ((p `plusPtr` 32 :: Ptr (Ptr PipelineLibraryCreateInfoKHR)))
+    pLibraryInfo' <- maybePeek (\j -> peekCStruct @PipelineLibraryCreateInfoKHR (j)) pLibraryInfo
+    layout <- peek @PipelineLayout ((p `plusPtr` 40 :: Ptr PipelineLayout))
+    basePipelineHandle <- peek @Pipeline ((p `plusPtr` 48 :: Ptr Pipeline))
+    basePipelineIndex <- peek @Int32 ((p `plusPtr` 56 :: Ptr Int32))
+    pure $ ExecutionGraphPipelineCreateInfoAMDX
+             next
+             flags
+             stageCount
+             pStages'
+             pLibraryInfo'
+             layout
+             basePipelineHandle
+             basePipelineIndex
+
+instance es ~ '[] => Zero (ExecutionGraphPipelineCreateInfoAMDX es) where
+  zero = ExecutionGraphPipelineCreateInfoAMDX
+           ()
+           zero
+           zero
+           mempty
+           Nothing
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineShaderStageNodeCreateInfoAMDX - Structure specifying the
+-- shader name and index with an execution graph
+--
+-- = Description
+--
+-- When included in the @pNext@ chain of a
+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structure, this
+-- structure specifies the shader name and shader index of a node when
+-- creating an execution graph pipeline. If this structure is omitted, the
+-- shader name is set to the name of the entry point in SPIR-V and the
+-- shader index is set to @0@.
+--
+-- When dispatching a node from another shader, the name is fixed at
+-- pipeline creation, but the index /can/ be set dynamically. By
+-- associating multiple shaders with the same name but different indexes,
+-- applications can dynamically select different nodes to execute.
+-- Applications /must/ ensure each node has a unique name and index.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX'
+--
+-- -   #VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameter# If
+--     @pName@ is not @NULL@, @pName@ /must/ be a null-terminated UTF-8
+--     string
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getExecutionGraphPipelineNodeIndexAMDX'
+data PipelineShaderStageNodeCreateInfoAMDX = PipelineShaderStageNodeCreateInfoAMDX
+  { -- | @pName@ is the shader name to use when creating a node in an execution
+    -- graph. If @pName@ is @NULL@, the name of the entry point specified in
+    -- SPIR-V is used as the shader name.
+    name :: Maybe ByteString
+  , -- | @index@ is the shader index to use when creating a node in an execution
+    -- graph. If @index@ is
+    -- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX' then the original
+    -- index is used, either as specified by the @ShaderIndexAMDX@ execution
+    -- mode, or @0@ if that too is not specified.
+    index :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineShaderStageNodeCreateInfoAMDX)
+#endif
+deriving instance Show PipelineShaderStageNodeCreateInfoAMDX
+
+instance ToCStruct PipelineShaderStageNodeCreateInfoAMDX where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineShaderStageNodeCreateInfoAMDX{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    pName'' <- case (name) of
+      Nothing -> pure nullPtr
+      Just j -> ContT $ useAsCString (j)
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pName''
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (index)
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PipelineShaderStageNodeCreateInfoAMDX where
+  peekCStruct p = do
+    pName <- peek @(Ptr CChar) ((p `plusPtr` 16 :: Ptr (Ptr CChar)))
+    pName' <- maybePeek (\j -> packCString (j)) pName
+    index <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ PipelineShaderStageNodeCreateInfoAMDX
+             pName' index
+
+instance Zero PipelineShaderStageNodeCreateInfoAMDX where
+  zero = PipelineShaderStageNodeCreateInfoAMDX
+           Nothing
+           zero
+
+
+-- | VkExecutionGraphPipelineScratchSizeAMDX - Structure describing the
+-- scratch space required to dispatch an execution graph
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getExecutionGraphPipelineScratchSizeAMDX'
+data ExecutionGraphPipelineScratchSizeAMDX = ExecutionGraphPipelineScratchSizeAMDX
+  { -- | @size@ indicates the scratch space required for dispatch the queried
+    -- execution graph.
+    size :: DeviceSize }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ExecutionGraphPipelineScratchSizeAMDX)
+#endif
+deriving instance Show ExecutionGraphPipelineScratchSizeAMDX
+
+instance ToCStruct ExecutionGraphPipelineScratchSizeAMDX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ExecutionGraphPipelineScratchSizeAMDX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct ExecutionGraphPipelineScratchSizeAMDX where
+  peekCStruct p = do
+    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    pure $ ExecutionGraphPipelineScratchSizeAMDX
+             size
+
+instance Storable ExecutionGraphPipelineScratchSizeAMDX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ExecutionGraphPipelineScratchSizeAMDX where
+  zero = ExecutionGraphPipelineScratchSizeAMDX
+           zero
+
+
+-- | VkDispatchGraphInfoAMDX - Structure specifying node parameters for
+-- execution graph dispatch
+--
+-- = Description
+--
+-- Whether @payloads@ is consumed as a device or host pointer is defined by
+-- the command this structure is used in.
+--
+-- == Valid Usage
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'DeviceOrHostAddressConstAMDX', 'DispatchGraphCountInfoAMDX'
+data DispatchGraphInfoAMDX = DispatchGraphInfoAMDX
+  { -- | @nodeIndex@ is the index of a node in an execution graph to be
+    -- dispatched.
+    nodeIndex :: Word32
+  , -- | @payloadCount@ is the number of payloads to dispatch for the specified
+    -- node.
+    --
+    -- #VUID-VkDispatchGraphInfoAMDX-payloadCount-09171# @payloadCount@ /must/
+    -- be no greater than
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxExecutionGraphShaderPayloadCount maxExecutionGraphShaderPayloadCount>
+    payloadCount :: Word32
+  , -- | @payloads@ is a device or host address pointer to a flat array of
+    -- payloads with size equal to the product of @payloadCount@ and
+    -- @payloadStride@
+    payloads :: DeviceOrHostAddressConstAMDX
+  , -- | @payloadStride@ is the byte stride between successive payloads in
+    -- @payloads@
+    payloadStride :: Word64
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DispatchGraphInfoAMDX)
+#endif
+deriving instance Show DispatchGraphInfoAMDX
+
+instance ToCStruct DispatchGraphInfoAMDX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DispatchGraphInfoAMDX{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) (nodeIndex)
+    lift $ poke ((p `plusPtr` 4 :: Ptr Word32)) (payloadCount)
+    ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (payloads) . ($ ())
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (payloadStride)
+    lift $ f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (zero) . ($ ())
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)
+    lift $ f
+
+instance Zero DispatchGraphInfoAMDX where
+  zero = DispatchGraphInfoAMDX
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkDispatchGraphCountInfoAMDX - Structure specifying count parameters for
+-- execution graph dispatch
+--
+-- = Description
+--
+-- Whether @infos@ is consumed as a device or host pointer is defined by
+-- the command this structure is used in.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueue VK_AMDX_shader_enqueue>,
+-- 'DeviceOrHostAddressConstAMDX', 'cmdDispatchGraphAMDX',
+-- 'cmdDispatchGraphIndirectAMDX', 'cmdDispatchGraphIndirectCountAMDX'
+data DispatchGraphCountInfoAMDX = DispatchGraphCountInfoAMDX
+  { -- | @count@ is the number of dispatches to perform.
+    count :: Word32
+  , -- | @infos@ is the device or host address of a flat array of
+    -- 'DispatchGraphInfoAMDX' structures
+    infos :: DeviceOrHostAddressConstAMDX
+  , -- | @stride@ is the byte stride between successive 'DispatchGraphInfoAMDX'
+    -- structures in @infos@
+    stride :: Word64
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DispatchGraphCountInfoAMDX)
+#endif
+deriving instance Show DispatchGraphCountInfoAMDX
+
+instance ToCStruct DispatchGraphCountInfoAMDX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DispatchGraphCountInfoAMDX{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) (count)
+    ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (infos) . ($ ())
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (stride)
+    lift $ f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (zero) . ($ ())
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)
+    lift $ f
+
+instance Zero DispatchGraphCountInfoAMDX where
+  zero = DispatchGraphCountInfoAMDX
+           zero
+           zero
+           zero
+
+
+data DeviceOrHostAddressConstAMDX
+  = DeviceAddressConstAMDX DeviceAddress
+  | HostAddressConstAMDX (Ptr ())
+  deriving (Show)
+
+instance ToCStruct DeviceOrHostAddressConstAMDX where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct :: Ptr DeviceOrHostAddressConstAMDX -> DeviceOrHostAddressConstAMDX -> IO a -> IO a
+  pokeCStruct p = (. const) . runContT .  \case
+    DeviceAddressConstAMDX v -> lift $ poke (castPtr @_ @DeviceAddress p) (v)
+    HostAddressConstAMDX v -> lift $ poke (castPtr @_ @(Ptr ()) p) (v)
+  pokeZeroCStruct :: Ptr DeviceOrHostAddressConstAMDX -> IO b -> IO b
+  pokeZeroCStruct _ f = f
+  cStructSize = 8
+  cStructAlignment = 8
+
+instance Zero DeviceOrHostAddressConstAMDX where
+  zero = DeviceAddressConstAMDX zero
+
+
+type BufferUsageFlags2KHR = BufferUsageFlagBits2KHR
+
+-- | VkBufferUsageFlagBits2KHR - Bitmask controlling how a pipeline is
+-- created
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+newtype BufferUsageFlagBits2KHR = BufferUsageFlagBits2KHR Flags64
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR' specifies that the buffer /can/ be
+-- used as the source of a /transfer command/ (see the definition of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).
+pattern BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000001
+
+-- | 'BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR' specifies that the buffer /can/ be
+-- used as the destination of a transfer command.
+pattern BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000002
+
+-- | 'BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' specifies that the buffer
+-- /can/ be used to create a 'Vulkan.Core10.Handles.BufferView' suitable
+-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot of type
+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'.
+pattern BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000004
+
+-- | 'BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' specifies that the buffer
+-- /can/ be used to create a 'Vulkan.Core10.Handles.BufferView' suitable
+-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot of type
+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'.
+pattern BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000008
+
+-- | 'BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR' specifies that the buffer /can/
+-- be used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' suitable
+-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot either of
+-- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
+-- or
+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.
+pattern BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000010
+
+-- | 'BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR' specifies that the buffer /can/
+-- be used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' suitable
+-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot either of
+-- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
+-- or
+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.
+pattern BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000020
+
+-- | 'BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR' specifies that the buffer is
+-- suitable for passing as the @buffer@ parameter to
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
+pattern BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000040
+
+-- | 'BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR' specifies that the buffer is
+-- suitable for passing as an element of the @pBuffers@ array to
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'.
+pattern BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000080
+
+-- | 'BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR' specifies that the buffer is
+-- suitable for passing as the @buffer@ parameter to
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect',
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
+-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
+-- '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',
+-- or @sequencesCountBuffer@ or @sequencesIndexBuffer@ or
+-- @preprocessedBuffer@ member of
+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV'
+pattern BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000100
+
+-- No documentation found for Nested "VkBufferUsageFlagBits2KHR" "VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT"
+pattern BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000001000000
+
+-- No documentation found for Nested "VkBufferUsageFlagBits2KHR" "VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
+pattern BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000800000
+
+-- | 'BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' specifies
+-- that the buffer, when bound, /can/ be used by the implementation to
+-- support push descriptors when using descriptor buffers.
+pattern BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000004000000
+
+-- | 'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the
+-- buffer is suitable to contain resource descriptors when bound as a
+-- descriptor buffer.
+pattern BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000400000
+
+-- | 'BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the
+-- buffer is suitable to contain sampler and combined image sampler
+-- descriptors when bound as a descriptor buffer. Buffers containing
+-- combined image sampler descriptors /must/ also specify
+-- 'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'.
+pattern BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000200000
+
+-- | 'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' specifies that
+-- the buffer is suitable for storage space for a
+-- 'Vulkan.Extensions.Handles.AccelerationStructureKHR'.
+pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000100000
+
+-- | 'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
+-- specifies that the buffer is suitable for use as a read-only input to an
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>.
+pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000080000
+
+-- | 'BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR' specifies that the buffer
+-- /can/ be used to retrieve a buffer device address via
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'
+-- and use that address to access the buffer’s memory from a shader.
+pattern BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000020000
+
+-- | 'BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR' is reserved for future use.
+pattern BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000010000
+
+-- | 'BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR' specifies that the buffer
+-- /can/ be used as the destination video bitstream buffer in a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operation>.
+pattern BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000008000
+
+-- | 'BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR' is reserved for future use.
+pattern BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000004000
+
+-- | 'BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR' specifies that the buffer
+-- /can/ be used as the source video bitstream buffer in a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operations video decode operation>.
+pattern BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000002000
+
+-- | 'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' specifies
+-- that the buffer is suitable for using as a counter buffer with
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'
+-- and
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'.
+pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000001000
+
+-- | 'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' specifies that the
+-- buffer is suitable for using for binding as a transform feedback buffer
+-- with
+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT'.
+pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000000800
+
+-- | 'BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR' specifies that the buffer
+-- is suitable for use as a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>.
+pattern BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000400
+
+-- | 'BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies that the buffer
+-- is suitable for passing as the @buffer@ parameter to
+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'.
+pattern BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000000200
+
+-- | 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' specifies that the
+-- buffer /can/ be used for as scratch memory for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphs execution graph dispatch>.
+pattern BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits2KHR 0x0000000002000000
+
+conNameBufferUsageFlagBits2KHR :: String
+conNameBufferUsageFlagBits2KHR = "BufferUsageFlagBits2KHR"
+
+enumPrefixBufferUsageFlagBits2KHR :: String
+enumPrefixBufferUsageFlagBits2KHR = "BUFFER_USAGE_2_"
+
+showTableBufferUsageFlagBits2KHR :: [(BufferUsageFlagBits2KHR, String)]
+showTableBufferUsageFlagBits2KHR =
+  [
+    ( BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR
+    , "TRANSFER_SRC_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR
+    , "TRANSFER_DST_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR
+    , "UNIFORM_TEXEL_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR
+    , "STORAGE_TEXEL_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR
+    , "UNIFORM_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR
+    , "STORAGE_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR
+    , "INDEX_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR
+    , "VERTEX_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR
+    , "INDIRECT_BUFFER_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
+    , "MICROMAP_STORAGE_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
+    , "MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
+    , "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
+    , "RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
+    , "SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
+    , "ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
+    , "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR
+    , "SHADER_DEVICE_ADDRESS_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
+    , "VIDEO_ENCODE_SRC_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
+    , "VIDEO_ENCODE_DST_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
+    , "VIDEO_DECODE_DST_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
+    , "VIDEO_DECODE_SRC_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
+    , "TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
+    , "TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
+    , "SHADER_BINDING_TABLE_BIT_KHR"
+    )
+  ,
+    ( BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
+    , "CONDITIONAL_RENDERING_BIT_EXT"
+    )
+  ,
+    ( BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
+    , "EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
+    )
+  ]
+
+instance Show BufferUsageFlagBits2KHR where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixBufferUsageFlagBits2KHR
+      showTableBufferUsageFlagBits2KHR
+      conNameBufferUsageFlagBits2KHR
+      (\(BufferUsageFlagBits2KHR x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read BufferUsageFlagBits2KHR where
+  readPrec =
+    enumReadPrec
+      enumPrefixBufferUsageFlagBits2KHR
+      showTableBufferUsageFlagBits2KHR
+      conNameBufferUsageFlagBits2KHR
+      BufferUsageFlagBits2KHR
+
+type AMDX_SHADER_ENQUEUE_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION"
+pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION :: forall a . Integral a => a
+pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION = 1
+
+
+type AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue"
+
+-- No documentation found for TopLevel "VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME"
+pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue"
+
diff --git a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot
@@ -0,0 +1,268 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_AMDX_shader_enqueue - device extension
+--
+-- == VK_AMDX_shader_enqueue
+--
+-- [__Name String__]
+--     @VK_AMDX_shader_enqueue@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     135
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
+--
+--     -   __This is a /provisional/ extension and /must/ be used with
+--         caution. See the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#boilerplate-provisional-header description>
+--         of provisional header files for enablement and stability
+--         details.__
+--
+-- [__Contact__]
+--
+--     -   Tobias Hector
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_AMDX_shader_enqueue] @tobski%0A*Here describe the issue or question you have about the VK_AMDX_shader_enqueue extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_AMDX_shader_enqueue.adoc VK_AMDX_shader_enqueue>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-07-22
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMDX_shader_enqueue.html SPV_AMDX_shader_enqueue>.
+--
+-- [__Provisional__]
+--     __This extension is /provisional/ and /should/ not be used in
+--     production applications. The functionality /may/ change in ways that
+--     break backwards compatibility between revisions, and before final
+--     release.__
+--
+-- [__Contributors__]
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Matthaeus Chajdas, AMD
+--
+--     -   Maciej Jesionowski, AMD
+--
+--     -   Robert Martin, AMD
+--
+--     -   Qun Lin, AMD
+--
+--     -   Rex Xu, AMD
+--
+--     -   Dominik Witczak, AMD
+--
+--     -   Karthik Srinivasan, AMD
+--
+--     -   Nicolai Haehnle, AMD
+--
+--     -   Stuart Smith, AMD
+--
+-- == Description
+--
+-- This extension adds the ability for developers to enqueue compute shader
+-- workgroups from other compute shaders.
+--
+-- == New Commands
+--
+-- -   'cmdDispatchGraphAMDX'
+--
+-- -   'cmdDispatchGraphIndirectAMDX'
+--
+-- -   'cmdDispatchGraphIndirectCountAMDX'
+--
+-- -   'cmdInitializeGraphScratchMemoryAMDX'
+--
+-- -   'createExecutionGraphPipelinesAMDX'
+--
+-- -   'getExecutionGraphPipelineNodeIndexAMDX'
+--
+-- -   'getExecutionGraphPipelineScratchSizeAMDX'
+--
+-- == New Structures
+--
+-- -   'DispatchGraphCountInfoAMDX'
+--
+-- -   'DispatchGraphInfoAMDX'
+--
+-- -   'ExecutionGraphPipelineCreateInfoAMDX'
+--
+-- -   'ExecutionGraphPipelineScratchSizeAMDX'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceShaderEnqueueFeaturesAMDX'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceShaderEnqueuePropertiesAMDX'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo':
+--
+--     -   'PipelineShaderStageNodeCreateInfoAMDX'
+--
+-- == New Unions
+--
+-- -   'DeviceOrHostAddressConstAMDX'
+--
+-- == New Enum Constants
+--
+-- -   'AMDX_SHADER_ENQUEUE_EXTENSION_NAME'
+--
+-- -   'AMDX_SHADER_ENQUEUE_SPEC_VERSION'
+--
+-- -   'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--
+-- -   Extending 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint':
+--
+--     -   'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+-- is supported:
+--
+-- -   Extending 'BufferUsageFlagBits2KHR':
+--
+--     -   'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-07-22 (Tobias Hector)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX',
+-- 'DeviceOrHostAddressConstAMDX', 'DispatchGraphCountInfoAMDX',
+-- 'DispatchGraphInfoAMDX', 'ExecutionGraphPipelineCreateInfoAMDX',
+-- 'ExecutionGraphPipelineScratchSizeAMDX',
+-- 'PhysicalDeviceShaderEnqueueFeaturesAMDX',
+-- 'PhysicalDeviceShaderEnqueuePropertiesAMDX',
+-- 'PipelineShaderStageNodeCreateInfoAMDX', 'cmdDispatchGraphAMDX',
+-- 'cmdDispatchGraphIndirectAMDX', 'cmdDispatchGraphIndirectCountAMDX',
+-- 'cmdInitializeGraphScratchMemoryAMDX',
+-- 'createExecutionGraphPipelinesAMDX',
+-- 'getExecutionGraphPipelineNodeIndexAMDX',
+-- 'getExecutionGraphPipelineScratchSizeAMDX'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMDX_shader_enqueue Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_AMDX_shader_enqueue  ( DispatchGraphCountInfoAMDX
+                                                 , DispatchGraphInfoAMDX
+                                                 , ExecutionGraphPipelineCreateInfoAMDX
+                                                 , ExecutionGraphPipelineScratchSizeAMDX
+                                                 , PhysicalDeviceShaderEnqueueFeaturesAMDX
+                                                 , PhysicalDeviceShaderEnqueuePropertiesAMDX
+                                                 , PipelineShaderStageNodeCreateInfoAMDX
+                                                 ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
+data DispatchGraphCountInfoAMDX
+
+instance ToCStruct DispatchGraphCountInfoAMDX
+instance Show DispatchGraphCountInfoAMDX
+
+
+data DispatchGraphInfoAMDX
+
+instance ToCStruct DispatchGraphInfoAMDX
+instance Show DispatchGraphInfoAMDX
+
+
+type role ExecutionGraphPipelineCreateInfoAMDX nominal
+data ExecutionGraphPipelineCreateInfoAMDX (es :: [Type])
+
+instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es
+         , PokeChain es ) => ToCStruct (ExecutionGraphPipelineCreateInfoAMDX es)
+instance Show (Chain es) => Show (ExecutionGraphPipelineCreateInfoAMDX es)
+
+instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es
+         , PeekChain es ) => FromCStruct (ExecutionGraphPipelineCreateInfoAMDX es)
+
+
+data ExecutionGraphPipelineScratchSizeAMDX
+
+instance ToCStruct ExecutionGraphPipelineScratchSizeAMDX
+instance Show ExecutionGraphPipelineScratchSizeAMDX
+
+instance FromCStruct ExecutionGraphPipelineScratchSizeAMDX
+
+
+data PhysicalDeviceShaderEnqueueFeaturesAMDX
+
+instance ToCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX
+instance Show PhysicalDeviceShaderEnqueueFeaturesAMDX
+
+instance FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX
+
+
+data PhysicalDeviceShaderEnqueuePropertiesAMDX
+
+instance ToCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX
+instance Show PhysicalDeviceShaderEnqueuePropertiesAMDX
+
+instance FromCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX
+
+
+data PipelineShaderStageNodeCreateInfoAMDX
+
+instance ToCStruct PipelineShaderStageNodeCreateInfoAMDX
+instance Show PipelineShaderStageNodeCreateInfoAMDX
+
+instance FromCStruct PipelineShaderStageNodeCreateInfoAMDX
+
diff --git a/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs b/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs
--- a/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs
+++ b/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
diff --git a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs
--- a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs
+++ b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs
--- a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs
+++ b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -57,8 +60,8 @@
 -- Vulkan:
 --
 -- -   A new 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR' enum for
---     setting the native display colorspace. For example, this color space
---     would be set by the swapchain to use the native color space in
+--     setting the native display color space. For example, this color
+--     space would be set by the swapchain to use the native color space in
 --     Freesync2 displays.
 --
 -- -   Local dimming control
diff --git a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -57,8 +60,8 @@
 -- Vulkan:
 --
 -- -   A new 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR' enum for
---     setting the native display colorspace. For example, this color space
---     would be set by the swapchain to use the native color space in
+--     setting the native display color space. For example, this color
+--     space would be set by the swapchain to use the native color space in
 --     Freesync2 displays.
 --
 -- -   Local dimming control
diff --git a/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs b/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs
--- a/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs
+++ b/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to @VK_KHR_draw_indirect_count@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs b/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs
--- a/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs
+++ b/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Dominik Witczak
diff --git a/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs b/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs
--- a/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs
+++ b/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_shader_float16_int8@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs b/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs
--- a/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs
+++ b/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_shader_float16_int8@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs
--- a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs
+++ b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Martin Dinkov
diff --git a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Martin Dinkov
diff --git a/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs b/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs
--- a/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs
+++ b/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Matthaeus G. Chajdas
diff --git a/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs b/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs
--- a/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs
+++ b/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Obsoleted/ by @VK_KHR_maintenance1@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs
--- a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs
+++ b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Matthaeus G. Chajdas
@@ -49,7 +52,8 @@
 -- == New Structures
 --
 -- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
---     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo':
+--     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX':
 --
 --     -   'PipelineCompilerControlCreateInfoAMD'
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Matthaeus G. Chajdas
@@ -49,7 +52,8 @@
 -- == New Structures
 --
 -- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
---     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo':
+--     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX':
 --
 --     -   'PipelineCompilerControlCreateInfoAMD'
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs
--- a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs
+++ b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Daniel Rakos
diff --git a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Daniel Rakos
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs b/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Dominik Witczak
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -223,7 +226,7 @@
     -- indicating the maximum size of a subgroup.
     wavefrontSize :: Word32
   , -- | #limits-sgprsPerSimd# @sgprsPerSimd@ is an unsigned integer value
-    -- indicating the number of physical Scalar General Purpose Registers
+    -- indicating the number of physical Scalar General-Purpose Registers
     -- (SGPRs) per SIMD.
     sgprsPerSimd :: Word32
   , -- | #limits-minSgprAllocation# @minSgprAllocation@ is an unsigned integer
@@ -237,7 +240,7 @@
     -- a wave.
     sgprAllocationGranularity :: Word32
   , -- | #limits-vgprsPerSimd# @vgprsPerSimd@ is an unsigned integer value
-    -- indicating the number of physical Vector General Purpose Registers
+    -- indicating the number of physical Vector General-Purpose Registers
     -- (VGPRs) per SIMD.
     vgprsPerSimd :: Word32
   , -- | #limits-minVgprAllocation# @minVgprAllocation@ is an unsigned integer
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties VK_AMD_shader_core_properties>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties VK_AMD_shader_core_properties>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs b/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Qun Lin
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs b/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Aaron Hagan
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs b/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Dominik Witczak
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_info.hs b/src/Vulkan/Extensions/VK_AMD_shader_info.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_info.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_info.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs b/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Qun Lin
diff --git a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs
--- a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs
+++ b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs
@@ -0,0 +1,432 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_ANDROID_external_format_resolve - device extension
+--
+-- == VK_ANDROID_external_format_resolve
+--
+-- [__Name String__]
+--     @VK_ANDROID_external_format_resolve@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     469
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer VK_ANDROID_external_memory_android_hardware_buffer>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+-- [__Contact__]
+--
+--     -   Chris Forbes
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ANDROID_external_format_resolve] @chrisforbes%0A*Here describe the issue or question you have about the VK_ANDROID_external_format_resolve extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_ANDROID_external_format_resolve.adoc VK_ANDROID_external_format_resolve>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-03
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Chris Forbes, Google
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Matthew Netsch, Qualcomm
+--
+--     -   Tony Zlatsinki, Nvidia
+--
+--     -   Daniel Koch, Nvidia
+--
+--     -   Jeff Leger, Qualcomm
+--
+--     -   Alex Walters, Imagination
+--
+--     -   Andrew Garrard, Imagination
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Ian Elliott, Google
+--
+-- == Description
+--
+-- This extension enables rendering to Android Hardware Buffers with
+-- external formats which cannot be directly represented as renderable in
+-- Vulkan, including Y′CBCR formats.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID':
+--
+--     -   'AndroidHardwareBufferFormatResolvePropertiesANDROID'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceExternalFormatResolveFeaturesANDROID'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+--
+-- == New Enum Constants
+--
+-- -   'ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME'
+--
+-- -   'ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits':
+--
+--     -   'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-05-34 (Tobias Hector)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'AndroidHardwareBufferFormatResolvePropertiesANDROID',
+-- 'PhysicalDeviceExternalFormatResolveFeaturesANDROID',
+-- 'PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_format_resolve Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_ANDROID_external_format_resolve  ( PhysicalDeviceExternalFormatResolveFeaturesANDROID(..)
+                                                             , PhysicalDeviceExternalFormatResolvePropertiesANDROID(..)
+                                                             , AndroidHardwareBufferFormatResolvePropertiesANDROID(..)
+                                                             , ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION
+                                                             , pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION
+                                                             , ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME
+                                                             , pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME
+                                                             ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core11.Enums.ChromaLocation (ChromaLocation)
+import Vulkan.Core10.Enums.Format (Format)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID))
+-- | VkPhysicalDeviceExternalFormatResolveFeaturesANDROID - Structure
+-- describing whether external format resolves are supported
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceExternalFormatResolveFeaturesANDROID' 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. 'PhysicalDeviceExternalFormatResolveFeaturesANDROID' /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_ANDROID_external_format_resolve VK_ANDROID_external_format_resolve>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceExternalFormatResolveFeaturesANDROID = PhysicalDeviceExternalFormatResolveFeaturesANDROID
+  { -- | #features-externalFormatResolve# @externalFormatResolve@ specifies
+    -- whether external format resolves are supported.
+    externalFormatResolve :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceExternalFormatResolveFeaturesANDROID)
+#endif
+deriving instance Show PhysicalDeviceExternalFormatResolveFeaturesANDROID
+
+instance ToCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceExternalFormatResolveFeaturesANDROID{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (externalFormatResolve))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID where
+  peekCStruct p = do
+    externalFormatResolve <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceExternalFormatResolveFeaturesANDROID
+             (bool32ToBool externalFormatResolve)
+
+instance Storable PhysicalDeviceExternalFormatResolveFeaturesANDROID where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceExternalFormatResolveFeaturesANDROID where
+  zero = PhysicalDeviceExternalFormatResolveFeaturesANDROID
+           zero
+
+
+-- | VkPhysicalDeviceExternalFormatResolvePropertiesANDROID - Structure
+-- describing external format resolve supported by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceExternalFormatResolvePropertiesANDROID' 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_ANDROID_external_format_resolve VK_ANDROID_external_format_resolve>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceExternalFormatResolvePropertiesANDROID = PhysicalDeviceExternalFormatResolvePropertiesANDROID
+  { -- | #limits-nullColorAttachmentWithExternalFormatResolve#
+    -- @nullColorAttachmentWithExternalFormatResolve@ indicates that there
+    -- /must/ be no color attachment image when performing external format
+    -- resolves if it is 'Vulkan.Core10.FundamentalTypes.TRUE'.
+    nullColorAttachmentWithExternalFormatResolve :: Bool
+  , -- | #limits-externalFormatResolveChromaOffsetX#
+    -- @externalFormatResolveChromaOffsetX@ indicates the
+    -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation' that an
+    -- implementation uses in the X axis for accesses to an external format
+    -- image as a resolve attachment. This /must/ be consistent between
+    -- external format resolves and load operations from external format
+    -- resolve attachments to color attachments when
+    -- @nullColorAttachmentWithExternalFormatResolve@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE'.
+    externalFormatResolveChromaOffsetX :: ChromaLocation
+  , -- | #limits-externalFormatResolveChromaOffsetY#
+    -- @externalFormatResolveChromaOffsetY@ indicates the
+    -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation' that an
+    -- implementation uses in the Y axis for accesses to an external format
+    -- image as a resolve attachment. This /must/ be consistent between
+    -- external format resolves and load operations from external format
+    -- resolve attachments to color attachments when
+    -- @nullColorAttachmentWithExternalFormatResolve@ is
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE'.
+    externalFormatResolveChromaOffsetY :: ChromaLocation
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceExternalFormatResolvePropertiesANDROID)
+#endif
+deriving instance Show PhysicalDeviceExternalFormatResolvePropertiesANDROID
+
+instance ToCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceExternalFormatResolvePropertiesANDROID{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (nullColorAttachmentWithExternalFormatResolve))
+    poke ((p `plusPtr` 20 :: Ptr ChromaLocation)) (externalFormatResolveChromaOffsetX)
+    poke ((p `plusPtr` 24 :: Ptr ChromaLocation)) (externalFormatResolveChromaOffsetY)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr ChromaLocation)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr ChromaLocation)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID where
+  peekCStruct p = do
+    nullColorAttachmentWithExternalFormatResolve <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    externalFormatResolveChromaOffsetX <- peek @ChromaLocation ((p `plusPtr` 20 :: Ptr ChromaLocation))
+    externalFormatResolveChromaOffsetY <- peek @ChromaLocation ((p `plusPtr` 24 :: Ptr ChromaLocation))
+    pure $ PhysicalDeviceExternalFormatResolvePropertiesANDROID
+             (bool32ToBool nullColorAttachmentWithExternalFormatResolve)
+             externalFormatResolveChromaOffsetX
+             externalFormatResolveChromaOffsetY
+
+instance Storable PhysicalDeviceExternalFormatResolvePropertiesANDROID where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceExternalFormatResolvePropertiesANDROID where
+  zero = PhysicalDeviceExternalFormatResolvePropertiesANDROID
+           zero
+           zero
+           zero
+
+
+-- | VkAndroidHardwareBufferFormatResolvePropertiesANDROID - Structure
+-- defining properties of resolves using an external format
+--
+-- = Description
+--
+-- Any Android hardware buffer created with the @GRALLOC_USAGE_HW_RENDER@
+-- flag /must/ be renderable in some way in Vulkan, either:
+--
+-- -   'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID'::@format@
+--     /must/ be a format that supports
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--     in
+--     'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@;
+--     or
+--
+-- -   @colorAttachmentFormat@ /must/ be a format that supports
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--     in
+--     'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_format_resolve VK_ANDROID_external_format_resolve>,
+-- 'Vulkan.Core10.Enums.Format.Format',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data AndroidHardwareBufferFormatResolvePropertiesANDROID = AndroidHardwareBufferFormatResolvePropertiesANDROID
+  { -- | @colorAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format'
+    -- specifying the format of color attachment images that /must/ be used for
+    -- color attachments when resolving to the specified external format. If
+    -- the implementation supports external format resolves for the specified
+    -- external format, this value will be set to a color format supporting the
+    -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+    -- in
+    -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@
+    -- as returned by
+    -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'
+    -- with @format@ equal to @colorAttachmentFormat@ If external format
+    -- resolves are not supported, this value will be set to
+    -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'.
+    colorAttachmentFormat :: Format }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (AndroidHardwareBufferFormatResolvePropertiesANDROID)
+#endif
+deriving instance Show AndroidHardwareBufferFormatResolvePropertiesANDROID
+
+instance ToCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p AndroidHardwareBufferFormatResolvePropertiesANDROID{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Format)) (colorAttachmentFormat)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Format)) (zero)
+    f
+
+instance FromCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID where
+  peekCStruct p = do
+    colorAttachmentFormat <- peek @Format ((p `plusPtr` 16 :: Ptr Format))
+    pure $ AndroidHardwareBufferFormatResolvePropertiesANDROID
+             colorAttachmentFormat
+
+instance Storable AndroidHardwareBufferFormatResolvePropertiesANDROID where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero AndroidHardwareBufferFormatResolvePropertiesANDROID where
+  zero = AndroidHardwareBufferFormatResolvePropertiesANDROID
+           zero
+
+
+type ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION"
+pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION :: forall a . Integral a => a
+pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION = 1
+
+
+type ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME = "VK_ANDROID_external_format_resolve"
+
+-- No documentation found for TopLevel "VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME"
+pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME = "VK_ANDROID_external_format_resolve"
+
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot
@@ -0,0 +1,169 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_ANDROID_external_format_resolve - device extension
+--
+-- == VK_ANDROID_external_format_resolve
+--
+-- [__Name String__]
+--     @VK_ANDROID_external_format_resolve@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     469
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer VK_ANDROID_external_memory_android_hardware_buffer>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+-- [__Contact__]
+--
+--     -   Chris Forbes
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ANDROID_external_format_resolve] @chrisforbes%0A*Here describe the issue or question you have about the VK_ANDROID_external_format_resolve extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_ANDROID_external_format_resolve.adoc VK_ANDROID_external_format_resolve>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-03
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Chris Forbes, Google
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Matthew Netsch, Qualcomm
+--
+--     -   Tony Zlatsinki, Nvidia
+--
+--     -   Daniel Koch, Nvidia
+--
+--     -   Jeff Leger, Qualcomm
+--
+--     -   Alex Walters, Imagination
+--
+--     -   Andrew Garrard, Imagination
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Ian Elliott, Google
+--
+-- == Description
+--
+-- This extension enables rendering to Android Hardware Buffers with
+-- external formats which cannot be directly represented as renderable in
+-- Vulkan, including Y′CBCR formats.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID':
+--
+--     -   'AndroidHardwareBufferFormatResolvePropertiesANDROID'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceExternalFormatResolveFeaturesANDROID'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+--
+-- == New Enum Constants
+--
+-- -   'ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME'
+--
+-- -   'ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits':
+--
+--     -   'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-05-34 (Tobias Hector)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'AndroidHardwareBufferFormatResolvePropertiesANDROID',
+-- 'PhysicalDeviceExternalFormatResolveFeaturesANDROID',
+-- 'PhysicalDeviceExternalFormatResolvePropertiesANDROID'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_format_resolve Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_ANDROID_external_format_resolve  ( AndroidHardwareBufferFormatResolvePropertiesANDROID
+                                                             , PhysicalDeviceExternalFormatResolveFeaturesANDROID
+                                                             , PhysicalDeviceExternalFormatResolvePropertiesANDROID
+                                                             ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data AndroidHardwareBufferFormatResolvePropertiesANDROID
+
+instance ToCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID
+instance Show AndroidHardwareBufferFormatResolvePropertiesANDROID
+
+instance FromCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID
+
+
+data PhysicalDeviceExternalFormatResolveFeaturesANDROID
+
+instance ToCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID
+instance Show PhysicalDeviceExternalFormatResolveFeaturesANDROID
+
+instance FromCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID
+
+
+data PhysicalDeviceExternalFormatResolvePropertiesANDROID
+
+instance ToCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID
+instance Show PhysicalDeviceExternalFormatResolvePropertiesANDROID
+
+instance FromCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID
+
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs
--- a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     5
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --     and
@@ -94,7 +97,10 @@
 --     -   'AndroidHardwareBufferFormatPropertiesANDROID'
 --
 -- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo',
---     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo':
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':
 --
 --     -   'ExternalFormatANDROID'
 --
@@ -331,6 +337,7 @@
 import Data.Kind (Type)
 import Control.Monad.Trans.Cont (ContT(..))
 import Vulkan.CStruct.Extends (forgetExtensions)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (AndroidHardwareBufferFormatResolvePropertiesANDROID)
 import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core11.Enums.ChromaLocation (ChromaLocation)
 import Vulkan.Core10.ImageView (ComponentMapping)
@@ -669,8 +676,9 @@
 -- -   #VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext# Each
 --     @pNext@ member of any structure (including this one) in the @pNext@
 --     chain /must/ be either @NULL@ or a pointer to a valid instance of
---     'AndroidHardwareBufferFormatProperties2ANDROID' or
---     'AndroidHardwareBufferFormatPropertiesANDROID'
+--     'AndroidHardwareBufferFormatProperties2ANDROID',
+--     'AndroidHardwareBufferFormatPropertiesANDROID', or
+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'
 --
 -- -   #VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique# The
 --     @sType@ value of each struct in the @pNext@ chain /must/ be unique
@@ -702,6 +710,7 @@
   getNext AndroidHardwareBufferPropertiesANDROID{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AndroidHardwareBufferPropertiesANDROID e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @AndroidHardwareBufferFormatResolvePropertiesANDROID = Just f
     | Just Refl <- eqT @e @AndroidHardwareBufferFormatProperties2ANDROID = Just f
     | Just Refl <- eqT @e @AndroidHardwareBufferFormatPropertiesANDROID = Just f
     | otherwise = Nothing
@@ -859,9 +868,9 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 -- with appropriate parameters. These sets of features are independent of
 -- each other, e.g. the external format will support sampler Y′CBCR
--- conversion even if the non-external format does not, and writing to
--- non-external format images is possible but writing to external format
--- images is not.
+-- conversion even if the non-external format does not, and rendering
+-- directly to the external format will not be supported even if the
+-- non-external format does support this.
 --
 -- Android hardware buffers with the same external format /must/ have the
 -- same support for
@@ -1027,9 +1036,13 @@
 --
 -- = Description
 --
--- If @externalFormat@ is zero, the effect is as if the
--- 'ExternalFormatANDROID' structure was not present. Otherwise, the
--- @image@ will have the specified external format.
+-- When included in the @pNext@ chain of another structure, it indicates
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats additional format information>
+-- beyond what is provided by 'Vulkan.Core10.Enums.Format.Format' values
+-- for an Android hardware buffer. If @externalFormat@ is zero, it
+-- indicates that no external format is used, and implementations should
+-- rely only on other format information. If this structure is not present,
+-- it is equivalent to setting @externalFormat@ to zero.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot
--- a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     5
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --     and
@@ -94,7 +97,10 @@
 --     -   'AndroidHardwareBufferFormatPropertiesANDROID'
 --
 -- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo',
---     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo':
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':
 --
 --     -   'ExternalFormatANDROID'
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs b/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs
--- a/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs
+++ b/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_EXT_rasterization_order_attachment_access@
 --         extension
@@ -57,10 +60,6 @@
 -- access to framebuffer attachments when used as both input and color, or
 -- depth\/stencil, attachments from one fragment to the next, in
 -- rasterization order, without explicit synchronization.
---
--- See
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>
--- for more information.
 --
 -- == New Structures
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs
--- a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs
+++ b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs
@@ -17,13 +17,16 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
 -- [__Contact__]
 --
 --     -   Kevin Petit
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_shader_core_builtins] @kevinpetit%0A*Here describe the issue or question you have about the VK_ARM_shader_core_builtins extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_shader_core_builtins] @kpet%0A*Here describe the issue or question you have about the VK_ARM_shader_core_builtins extension* >
 --
 -- == Other Extension Metadata
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot
--- a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot
+++ b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot
@@ -17,13 +17,16 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
 -- [__Contact__]
 --
 --     -   Kevin Petit
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_shader_core_builtins] @kevinpetit%0A*Here describe the issue or question you have about the VK_ARM_shader_core_builtins extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_shader_core_builtins] @kpet%0A*Here describe the issue or question you have about the VK_ARM_shader_core_builtins extension* >
 --
 -- == Other Extension Metadata
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs
--- a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs
+++ b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs
--- a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs
+++ b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs b/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs
--- a/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs
+++ b/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_display VK_EXT_direct_mode_display>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs
--- a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs
+++ b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_display VK_EXT_direct_mode_display>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_display VK_EXT_direct_mode_display>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs
--- a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs
+++ b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -116,17 +119,17 @@
 --
 -- >     VkImageViewASTCDecodeModeEXT decodeMode =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, // sType
--- >         NULL, // pNext
--- >         VK_FORMAT_R8G8B8A8_UNORM // decode mode
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
+-- >         .pNext = NULL,
+-- >         .decodeMode = VK_FORMAT_R8G8B8A8_UNORM
 -- >     };
 -- >
 -- >     VkImageViewCreateInfo createInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // sType
--- >         &decodeMode, // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
+-- >         .pNext = &decodeMode,
 -- >         // flags, image, viewType set to application-desired values
--- >         VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // format
+-- >         .format = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
 -- >         // components, subresourceRange set to application-desired values
 -- >     };
 -- >
diff --git a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -116,17 +119,17 @@
 --
 -- >     VkImageViewASTCDecodeModeEXT decodeMode =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, // sType
--- >         NULL, // pNext
--- >         VK_FORMAT_R8G8B8A8_UNORM // decode mode
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
+-- >         .pNext = NULL,
+-- >         .decodeMode = VK_FORMAT_R8G8B8A8_UNORM
 -- >     };
 -- >
 -- >     VkImageViewCreateInfo createInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // sType
--- >         &decodeMode, // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
+-- >         .pNext = &decodeMode,
 -- >         // flags, image, viewType set to application-desired values
--- >         VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // format
+-- >         .format = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
 -- >         // components, subresourceRange set to application-desired values
 -- >     };
 -- >
diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs
@@ -0,0 +1,337 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_attachment_feedback_loop_dynamic_state - device extension
+--
+-- == VK_EXT_attachment_feedback_loop_dynamic_state
+--
+-- [__Name String__]
+--     @VK_EXT_attachment_feedback_loop_dynamic_state@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     525
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_attachment_feedback_loop_dynamic_state] @zmike%0A*Here describe the issue or question you have about the VK_EXT_attachment_feedback_loop_dynamic_state extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_attachment_feedback_loop_dynamic_state.adoc VK_EXT_attachment_feedback_loop_dynamic_state>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-04-28
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Stu Smith, AMD
+--
+--     -   Samuel Pitoiset, Valve
+--
+--     -   Ricardo Garcia, Igalia
+--
+-- == Description
+--
+-- This extension adds support for setting attachment feedback loops
+-- dynamically on command buffers.
+--
+-- == New Commands
+--
+-- -   'cmdSetAttachmentFeedbackLoopEnableEXT'
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME'
+--
+-- -   'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-04-28 (Mike Blumenkrantz)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
+-- 'cmdSetAttachmentFeedbackLoopEnableEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_dynamic_state Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state  ( cmdSetAttachmentFeedbackLoopEnableEXT
+                                                                        , PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(..)
+                                                                        , EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION
+                                                                        , pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION
+                                                                        , EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME
+                                                                        , pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME
+                                                                        ) where
+
+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.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.FundamentalTypes (Bool32)
+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(pVkCmdSetAttachmentFeedbackLoopEnableEXT))
+import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits(..))
+import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetAttachmentFeedbackLoopEnableEXT
+  :: FunPtr (Ptr CommandBuffer_T -> ImageAspectFlags -> IO ()) -> Ptr CommandBuffer_T -> ImageAspectFlags -> IO ()
+
+-- | vkCmdSetAttachmentFeedbackLoopEnableEXT - Specify whether attachment
+-- feedback loops are enabled dynamically on a command buffer
+--
+-- = Description
+--
+-- For attachments that are written to in a render pass, only attachments
+-- with the aspects specified in @aspectMask@ /can/ be accessed as
+-- non-attachments by subsequent
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863#
+--     @aspectMask@ /must/ only include
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE',
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayout attachmentFeedbackLoopLayout>
+--     feature is not enabled, @aspectMask@ /must/ be
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter#
+--     @aspectMask@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-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-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool#
+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_dynamic_state VK_EXT_attachment_feedback_loop_dynamic_state>,
+-- 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags'
+cmdSetAttachmentFeedbackLoopEnableEXT :: forall io
+                                       . (MonadIO io)
+                                      => -- | @commandBuffer@ is the command buffer into which the command will be
+                                         -- recorded.
+                                         CommandBuffer
+                                      -> -- | @aspectMask@ specifies the types of attachments for which feedback loops
+                                         -- will be enabled. Attachment types whose aspects are not included in
+                                         -- @aspectMask@ will have feedback loops disabled.
+                                         ("aspectMask" ::: ImageAspectFlags)
+                                      -> io ()
+cmdSetAttachmentFeedbackLoopEnableEXT commandBuffer aspectMask = liftIO $ do
+  let vkCmdSetAttachmentFeedbackLoopEnableEXTPtr = pVkCmdSetAttachmentFeedbackLoopEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdSetAttachmentFeedbackLoopEnableEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetAttachmentFeedbackLoopEnableEXT is null" Nothing Nothing
+  let vkCmdSetAttachmentFeedbackLoopEnableEXT' = mkVkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXTPtr
+  traceAroundEvent "vkCmdSetAttachmentFeedbackLoopEnableEXT" (vkCmdSetAttachmentFeedbackLoopEnableEXT'
+                                                                (commandBufferHandle (commandBuffer))
+                                                                (aspectMask))
+  pure $ ()
+
+
+-- | VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT -
+-- Structure describing if dynamic feedback loops can be used
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT'
+-- 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. 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT'
+-- /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_EXT_attachment_feedback_loop_dynamic_state VK_EXT_attachment_feedback_loop_dynamic_state>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+  { -- | #features-attachmentFeedbackLoopDynamicState#
+    -- @attachmentFeedbackLoopDynamicState@ specifies whether dynamic feedback
+    -- loops are supported.
+    attachmentFeedbackLoopDynamicState :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+
+instance ToCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (attachmentFeedbackLoopDynamicState))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where
+  peekCStruct p = do
+    attachmentFeedbackLoopDynamicState <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+             (bool32ToBool attachmentFeedbackLoopDynamicState)
+
+instance Storable PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where
+  zero = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+           zero
+
+
+type EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION"
+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION = 1
+
+
+type EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_dynamic_state"
+
+-- No documentation found for TopLevel "VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME"
+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_dynamic_state"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot
@@ -0,0 +1,117 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_attachment_feedback_loop_dynamic_state - device extension
+--
+-- == VK_EXT_attachment_feedback_loop_dynamic_state
+--
+-- [__Name String__]
+--     @VK_EXT_attachment_feedback_loop_dynamic_state@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     525
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_attachment_feedback_loop_dynamic_state] @zmike%0A*Here describe the issue or question you have about the VK_EXT_attachment_feedback_loop_dynamic_state extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_attachment_feedback_loop_dynamic_state.adoc VK_EXT_attachment_feedback_loop_dynamic_state>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-04-28
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Stu Smith, AMD
+--
+--     -   Samuel Pitoiset, Valve
+--
+--     -   Ricardo Garcia, Igalia
+--
+-- == Description
+--
+-- This extension adds support for setting attachment feedback loops
+-- dynamically on command buffers.
+--
+-- == New Commands
+--
+-- -   'cmdSetAttachmentFeedbackLoopEnableEXT'
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME'
+--
+-- -   'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-04-28 (Mike Blumenkrantz)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',
+-- 'cmdSetAttachmentFeedbackLoopEnableEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_dynamic_state Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state  (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+
+instance ToCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+instance Show PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+
+instance FromCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs
--- a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs
+++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs
--- a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs
+++ b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs
--- a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs
+++ b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_color VK_EXT_custom_border_color>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_color VK_EXT_custom_border_color>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs
--- a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs
+++ b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_buffer_device_address@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_buffer_device_address@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
--- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
+++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -27,6 +30,9 @@
 --     -   Daniel Rakos
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_calibrated_timestamps] @drakos-amd%0A*Here describe the issue or question you have about the VK_EXT_calibrated_timestamps extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -78,80 +84,6 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'
 --
--- == Issues
---
--- 1) Is the device timestamp value returned in the same time domain as the
--- timestamp values written by
--- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'?
---
--- __RESOLVED__: Yes.
---
--- 2) What time domain is the host timestamp returned in?
---
--- __RESOLVED__: A query is provided to determine the calibrateable time
--- domains. The expected host time domain used on Windows is that of
--- QueryPerformanceCounter, and on Linux that of CLOCK_MONOTONIC.
---
--- 3) Should we support other time domain combinations than just one host
--- and the device time domain?
---
--- __RESOLVED__: Supporting that would need the application to query the
--- set of supported time domains, while supporting only one host and the
--- device time domain would only need a query for the host time domain
--- type. The proposed API chooses the general approach for the sake of
--- extensibility.
---
--- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC?
---
--- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations,
--- however, it is subject to NTP adjustments so some use cases may prefer
--- CLOCK_MONOTONIC_RAW. Thus this extension allows both to be exposed.
---
--- 5) How can the application extrapolate future device timestamp values
--- from the calibrated timestamp value?
---
--- __RESOLVED__:
--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@
--- makes it possible to calculate future device timestamps as follows:
---
--- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod
---
--- 6) In what queue are timestamp values in time domain
--- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'?
---
--- __RESOLVED__: An implementation supporting this extension will have all
--- its VkQueue share the same time domain.
---
--- 6) Can the host and device timestamp values drift apart over longer
--- periods of time?
---
--- __RESOLVED__: Yes, especially as some time domains by definition allow
--- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments).
--- Thus it is recommended that applications re-calibrate from time to time.
---
--- 7) Should we add a query for reporting the maximum deviation of the
--- timestamp values returned by calibrated timestamp queries?
---
--- __RESOLVED__: A global query seems inappropriate and difficult to
--- enforce. However, it is possible to return the maximum deviation any
--- single calibrated timestamp query can have by sampling one of the time
--- domains twice as follows:
---
--- > timestampX = timestampX_before = SampleTimeDomain(X)
--- > for each time domain Y != X
--- >     timestampY = SampleTimeDomain(Y)
--- > timestampX_after = SampleTimeDomain(X)
--- > maxDeviation = timestampX_after - timestampX_before
---
--- 8) Can the maximum deviation reported ever be zero?
---
--- __RESOLVED__: Unless the tick of each clock corresponding to the set of
--- time domains coincides and all clocks can literally be sampled
--- simultaneously, there is not really a possibility for the maximum
--- deviation to be zero, so by convention the maximum deviation is always
--- at least the maximum of the length of the ticks of the set of time
--- domains calibrated and thus can never be zero.
---
 -- == Version History
 --
 -- -   Revision 2, 2021-03-16 (Lionel Landwerlin)
@@ -368,6 +300,31 @@
 -- enough to fit any particular purpose, so applications are expected to
 -- re-calibrate the timestamps on a regular basis.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The
+--     @timeDomain@ value of each 'CalibratedTimestampInfoEXT' in
+--     @pTimestampInfos@ /must/ be unique
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-device-parameter# @device@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter#
+--     @pTimestampInfos@ /must/ be a valid pointer to an array of
+--     @timestampCount@ valid 'CalibratedTimestampInfoEXT' structures
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter#
+--     @pTimestamps@ /must/ be a valid pointer to an array of
+--     @timestampCount@ @uint64_t@ values
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter#
+--     @pMaxDeviation@ /must/ be a valid pointer to a @uint64_t@ value
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength#
+--     @timestampCount@ /must/ be greater than @0@
+--
 -- == Return Codes
 --
 -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
@@ -387,17 +344,10 @@
 getCalibratedTimestampsEXT :: forall io
                             . (MonadIO io)
                            => -- | @device@ is the logical device used to perform the query.
-                              --
-                              -- #VUID-vkGetCalibratedTimestampsEXT-device-parameter# @device@ /must/ be
-                              -- a valid 'Vulkan.Core10.Handles.Device' handle
                               Device
                            -> -- | @pTimestampInfos@ is a pointer to an array of @timestampCount@
                               -- 'CalibratedTimestampInfoEXT' structures, describing the time domains the
                               -- calibrated timestamps should be captured from.
-                              --
-                              -- #VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter#
-                              -- @pTimestampInfos@ /must/ be a valid pointer to an array of
-                              -- @timestampCount@ valid 'CalibratedTimestampInfoEXT' structures
                               ("timestampInfos" ::: Vector CalibratedTimestampInfoEXT)
                            -> io (("timestamps" ::: Vector Word64), ("maxDeviation" ::: Word64))
 getCalibratedTimestampsEXT device timestampInfos = liftIO . evalContT $ do
diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -27,6 +30,9 @@
 --     -   Daniel Rakos
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_calibrated_timestamps] @drakos-amd%0A*Here describe the issue or question you have about the VK_EXT_calibrated_timestamps extension* >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -77,80 +83,6 @@
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'
---
--- == Issues
---
--- 1) Is the device timestamp value returned in the same time domain as the
--- timestamp values written by
--- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'?
---
--- __RESOLVED__: Yes.
---
--- 2) What time domain is the host timestamp returned in?
---
--- __RESOLVED__: A query is provided to determine the calibrateable time
--- domains. The expected host time domain used on Windows is that of
--- QueryPerformanceCounter, and on Linux that of CLOCK_MONOTONIC.
---
--- 3) Should we support other time domain combinations than just one host
--- and the device time domain?
---
--- __RESOLVED__: Supporting that would need the application to query the
--- set of supported time domains, while supporting only one host and the
--- device time domain would only need a query for the host time domain
--- type. The proposed API chooses the general approach for the sake of
--- extensibility.
---
--- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC?
---
--- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations,
--- however, it is subject to NTP adjustments so some use cases may prefer
--- CLOCK_MONOTONIC_RAW. Thus this extension allows both to be exposed.
---
--- 5) How can the application extrapolate future device timestamp values
--- from the calibrated timestamp value?
---
--- __RESOLVED__:
--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@
--- makes it possible to calculate future device timestamps as follows:
---
--- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod
---
--- 6) In what queue are timestamp values in time domain
--- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'?
---
--- __RESOLVED__: An implementation supporting this extension will have all
--- its VkQueue share the same time domain.
---
--- 6) Can the host and device timestamp values drift apart over longer
--- periods of time?
---
--- __RESOLVED__: Yes, especially as some time domains by definition allow
--- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments).
--- Thus it is recommended that applications re-calibrate from time to time.
---
--- 7) Should we add a query for reporting the maximum deviation of the
--- timestamp values returned by calibrated timestamp queries?
---
--- __RESOLVED__: A global query seems inappropriate and difficult to
--- enforce. However, it is possible to return the maximum deviation any
--- single calibrated timestamp query can have by sampling one of the time
--- domains twice as follows:
---
--- > timestampX = timestampX_before = SampleTimeDomain(X)
--- > for each time domain Y != X
--- >     timestampY = SampleTimeDomain(Y)
--- > timestampX_after = SampleTimeDomain(X)
--- > maxDeviation = timestampX_after - timestampX_before
---
--- 8) Can the maximum deviation reported ever be zero?
---
--- __RESOLVED__: Unless the tick of each clock corresponding to the set of
--- time domains coincides and all clocks can literally be sampled
--- simultaneously, there is not really a possibility for the maximum
--- deviation to be zero, so by convention the maximum deviation is always
--- at least the maximum of the length of the ticks of the set of time
--- domains calibrated and thus can never be zero.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs
--- a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs
+++ b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -385,6 +388,7 @@
 --
 -- -   #VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608# If
 --     the pipeline is being created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT',
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs
--- a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs
+++ b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs
--- a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs
--- a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs
+++ b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     12
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -298,14 +301,23 @@
 -- Note
 --
 -- If @format@ is a depth\/stencil format, the aspect is determined by the
--- value of 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pname@:borderColor.
--- If 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pname@:borderColor is
+-- value of 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@. If
+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ is
 -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT', the
 -- depth aspect is considered. If
--- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pname@:borderColor is
+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ is
 -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT', the
 -- stencil aspect is considered.
 --
+-- If @format@ is 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', the
+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ is
+-- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT', and the
+-- sampler is used with an image with a stencil format, then the
+-- implementation /must/ source the custom border color from either the
+-- first or second components of
+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@customBorderColor@ and
+-- /should/ source it from the first component.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605# If
@@ -313,7 +325,7 @@
 --     @format@ is not a depth\/stencil format then the
 --     'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ type /must/
 --     match the sampled type of the provided @format@, as shown in the
---     /SPIR-V Sampled Type/ column of the
+--     /SPIR-V Type/ column of the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat>
 --     table
 --
@@ -325,7 +337,8 @@
 -- -   #VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015# If the
 --     sampler is used to sample an image view of
 --     'Vulkan.Core10.Enums.Format.FORMAT_B4G4R4A4_UNORM_PACK16',
---     'Vulkan.Core10.Enums.Format.FORMAT_B5G6R5_UNORM_PACK16', or
+--     'Vulkan.Core10.Enums.Format.FORMAT_B5G6R5_UNORM_PACK16',
+--     'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR', or
 --     'Vulkan.Core10.Enums.Format.FORMAT_B5G5R5A1_UNORM_PACK16' format
 --     then @format@ /must/ not be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
diff --git a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     12
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs
--- a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs
+++ b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_EXT_debug_utils@ extension
 --
@@ -114,11 +117,11 @@
 -- >     // Set a name on the image
 -- >     const VkDebugMarkerObjectNameInfoEXT imageNameInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, // sType
--- >         NULL,                                           // pNext
--- >         VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,          // objectType
--- >         (uint64_t)image,                                // object
--- >         "Brick Diffuse Texture",                        // pObjectName
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .objectType = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
+-- >         .object = (uint64_t)image,
+-- >         .pObjectName = "Brick Diffuse Texture",
 -- >     };
 -- >
 -- >     pfnDebugMarkerSetObjectNameEXT(device, &imageNameInfo);
@@ -144,10 +147,10 @@
 -- >     // Describe the area being rendered
 -- >     const VkDebugMarkerMarkerInfoEXT houseMarker =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType
--- >         NULL,                                           // pNext
--- >         "Brick House",                                  // pMarkerName
--- >         { 1.0f, 0.0f, 0.0f, 1.0f },                     // color
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .pMarkerName = "Brick House",
+-- >         .color = { 1.0f, 0.0f, 0.0f, 1.0f },
 -- >     };
 -- >
 -- >     // Start an annotated group of calls under the 'Brick House' name
@@ -156,10 +159,10 @@
 -- >         // A mutable structure for each part being rendered
 -- >         VkDebugMarkerMarkerInfoEXT housePartMarker =
 -- >         {
--- >             VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType
--- >             NULL,                                           // pNext
--- >             NULL,                                           // pMarkerName
--- >             { 0.0f, 0.0f, 0.0f, 0.0f },                     // color
+-- >             .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
+-- >             .pNext = NULL,
+-- >             .pMarkerName = NULL,
+-- >             .color = { 0.0f, 0.0f, 0.0f, 0.0f },
 -- >         };
 -- >
 -- >         // Set the name and insert the marker
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_EXT_debug_utils@ extension
 --
@@ -114,11 +117,11 @@
 -- >     // Set a name on the image
 -- >     const VkDebugMarkerObjectNameInfoEXT imageNameInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, // sType
--- >         NULL,                                           // pNext
--- >         VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,          // objectType
--- >         (uint64_t)image,                                // object
--- >         "Brick Diffuse Texture",                        // pObjectName
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .objectType = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
+-- >         .object = (uint64_t)image,
+-- >         .pObjectName = "Brick Diffuse Texture",
 -- >     };
 -- >
 -- >     pfnDebugMarkerSetObjectNameEXT(device, &imageNameInfo);
@@ -144,10 +147,10 @@
 -- >     // Describe the area being rendered
 -- >     const VkDebugMarkerMarkerInfoEXT houseMarker =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType
--- >         NULL,                                           // pNext
--- >         "Brick House",                                  // pMarkerName
--- >         { 1.0f, 0.0f, 0.0f, 1.0f },                     // color
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .pMarkerName = "Brick House",
+-- >         .color = { 1.0f, 0.0f, 0.0f, 1.0f },
 -- >     };
 -- >
 -- >     // Start an annotated group of calls under the 'Brick House' name
@@ -156,10 +159,10 @@
 -- >         // A mutable structure for each part being rendered
 -- >         VkDebugMarkerMarkerInfoEXT housePartMarker =
 -- >         {
--- >             VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType
--- >             NULL,                                           // pNext
--- >             NULL,                                           // pMarkerName
--- >             { 0.0f, 0.0f, 0.0f, 0.0f },                     // color
+-- >             .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
+-- >             .pNext = NULL,
+-- >             .pMarkerName = NULL,
+-- >             .color = { 0.0f, 0.0f, 0.0f, 0.0f },
 -- >         };
 -- >
 -- >         // Set the name and insert the marker
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_report.hs b/src/Vulkan/Extensions/VK_EXT_debug_report.hs
--- a/src/Vulkan/Extensions/VK_EXT_debug_report.hs
+++ b/src/Vulkan/Extensions/VK_EXT_debug_report.hs
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     10
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Deprecated/ by @VK_EXT_debug_utils@ extension
 --
 -- [__Special Use__]
@@ -144,12 +147,12 @@
 -- >     VkDebugReportCallbackEXT cb1, cb2, cb3;
 -- >
 -- >     VkDebugReportCallbackCreateInfoEXT callback1 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,    // sType
--- >             NULL,                                                       // pNext
--- >             VK_DEBUG_REPORT_ERROR_BIT_EXT |                             // flags
--- >             VK_DEBUG_REPORT_WARNING_BIT_EXT,
--- >             myOutputDebugString,                                        // pfnCallback
--- >             NULL                                                        // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = VK_DEBUG_REPORT_ERROR_BIT_EXT |
+-- >                  VK_DEBUG_REPORT_WARNING_BIT_EXT,
+-- >         .pfnCallback = myOutputDebugString,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = vkCreateDebugReportCallbackEXT(instance, &callback1, &cb1);
 -- >     if (res != VK_SUCCESS)
@@ -163,11 +166,11 @@
 -- >        /* Do error handling for VK_ERROR_OUT_OF_MEMORY */
 -- >
 -- >     VkDebugReportCallbackCreateInfoEXT callback3 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,    // sType
--- >             NULL,                                                       // pNext
--- >             VK_DEBUG_REPORT_WARNING_BIT_EXT,                            // flags
--- >             mystdOutLogger,                                             // pfnCallback
--- >             NULL                                                        // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = VK_DEBUG_REPORT_WARNING_BIT_EXT,
+-- >         .pfnCallback = mystdOutLogger,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = vkCreateDebugReportCallbackEXT(instance, &callback3, &cb3);
 -- >     if (res != VK_SUCCESS)
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     10
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Deprecated/ by @VK_EXT_debug_utils@ extension
 --
 -- [__Special Use__]
@@ -144,12 +147,12 @@
 -- >     VkDebugReportCallbackEXT cb1, cb2, cb3;
 -- >
 -- >     VkDebugReportCallbackCreateInfoEXT callback1 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,    // sType
--- >             NULL,                                                       // pNext
--- >             VK_DEBUG_REPORT_ERROR_BIT_EXT |                             // flags
--- >             VK_DEBUG_REPORT_WARNING_BIT_EXT,
--- >             myOutputDebugString,                                        // pfnCallback
--- >             NULL                                                        // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = VK_DEBUG_REPORT_ERROR_BIT_EXT |
+-- >                  VK_DEBUG_REPORT_WARNING_BIT_EXT,
+-- >         .pfnCallback = myOutputDebugString,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = vkCreateDebugReportCallbackEXT(instance, &callback1, &cb1);
 -- >     if (res != VK_SUCCESS)
@@ -163,11 +166,11 @@
 -- >        /* Do error handling for VK_ERROR_OUT_OF_MEMORY */
 -- >
 -- >     VkDebugReportCallbackCreateInfoEXT callback3 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,    // sType
--- >             NULL,                                                       // pNext
--- >             VK_DEBUG_REPORT_WARNING_BIT_EXT,                            // flags
--- >             mystdOutLogger,                                             // pfnCallback
--- >             NULL                                                        // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = VK_DEBUG_REPORT_WARNING_BIT_EXT,
+-- >         .pfnCallback = mystdOutLogger,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = vkCreateDebugReportCallbackEXT(instance, &callback3, &cb3);
 -- >     if (res != VK_SUCCESS)
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs
--- a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs
+++ b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>
@@ -230,15 +233,15 @@
 -- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT");
 -- >
 -- >     VkDebugUtilsMessengerCreateInfoEXT callback1 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType
--- >             NULL,                                                     // pNext
--- >             0,                                                        // flags
--- >             VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT |           // messageSeverity
--- >             VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |             // messageType
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
--- >             myOutputDebugString,                                      // pfnUserCallback
--- >             NULL                                                      // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = 0,
+-- >         .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT |
+-- >                            VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
+-- >         .messageType= VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
+-- >                       VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
+-- >         .pfnUserCallback = myOutputDebugString,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb1);
 -- >     if (res != VK_SUCCESS) {
@@ -254,14 +257,14 @@
 -- >     }
 -- >
 -- >     VkDebugUtilsMessengerCreateInfoEXT callback3 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType
--- >             NULL,                                                     // pNext
--- >             0,                                                        // flags
--- >             VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,          // messageSeverity
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |             // messageType
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
--- >             mystdOutLogger,                                           // pfnUserCallback
--- >             NULL                                                      // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = 0,
+-- >         .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
+-- >         .messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
+-- >                        VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
+-- >         .pfnUserCallback = mystdOutLogger,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = pfnCreateDebugUtilsMessengerEXT(instance, &callback3, NULL, &cb3);
 -- >     if (res != VK_SUCCESS) {
@@ -291,11 +294,11 @@
 -- >     // Set a name on the image
 -- >     const VkDebugUtilsObjectNameInfoEXT imageNameInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, // sType
--- >         NULL,                                               // pNext
--- >         VK_OBJECT_TYPE_IMAGE,                               // objectType
--- >         (uint64_t)image,                                    // objectHandle
--- >         "Brick Diffuse Texture",                            // pObjectName
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .objectType = VK_OBJECT_TYPE_IMAGE,
+-- >         .objectHandle = (uint64_t)image,
+-- >         .pObjectName = "Brick Diffuse Texture",
 -- >     };
 -- >
 -- >     pfnSetDebugUtilsObjectNameEXT(device, &imageNameInfo);
@@ -323,10 +326,10 @@
 -- >     // Describe the area being rendered
 -- >     const VkDebugUtilsLabelEXT houseLabel =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType
--- >         NULL,                                    // pNext
--- >         "Brick House",                           // pLabelName
--- >         { 1.0f, 0.0f, 0.0f, 1.0f },              // color
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
+-- >         .pNext = NULL,
+-- >         .pLabelName = "Brick House",
+-- >         .color = { 1.0f, 0.0f, 0.0f, 1.0f },
 -- >     };
 -- >
 -- >     // Start an annotated group of calls under the 'Brick House' name
@@ -335,10 +338,10 @@
 -- >         // A mutable structure for each part being rendered
 -- >         VkDebugUtilsLabelEXT housePartLabel =
 -- >         {
--- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType
--- >             NULL,                                    // pNext
--- >             NULL,                                    // pLabelName
--- >             { 0.0f, 0.0f, 0.0f, 0.0f },              // color
+-- >             .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
+-- >             .pNext = NULL,
+-- >             .pLabelName = NULL,
+-- >             .color = { 0.0f, 0.0f, 0.0f, 0.0f },
 -- >         };
 -- >
 -- >         // Set the name and insert the marker
@@ -377,10 +380,10 @@
 -- >     // Describe the queue being used
 -- >     const VkDebugUtilsLabelEXT queueLabel =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType
--- >         NULL,                                    // pNext
--- >         "Main Render Work",                      // pLabelName
--- >         { 0.0f, 1.0f, 0.0f, 1.0f },              // color
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
+-- >         .pNext = NULL,
+-- >         .pLabelName = "Main Render Work",
+-- >         .color = { 0.0f, 1.0f, 0.0f, 1.0f },
 -- >     };
 -- >
 -- >     // Identify the queue label region
@@ -388,15 +391,18 @@
 -- >
 -- >     // Submit the work for the main render thread
 -- >     const VkCommandBuffer cmd_bufs[] = {commandBuffer};
--- >     VkSubmitInfo submit_info = {.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
--- >                                 .pNext = NULL,
--- >                                 .waitSemaphoreCount = 0,
--- >                                 .pWaitSemaphores = NULL,
--- >                                 .pWaitDstStageMask = NULL,
--- >                                 .commandBufferCount = 1,
--- >                                 .pCommandBuffers = cmd_bufs,
--- >                                 .signalSemaphoreCount = 0,
--- >                                 .pSignalSemaphores = NULL};
+-- >     VkSubmitInfo submit_info =
+-- >     {
+-- >         .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
+-- >         .pNext = NULL,
+-- >         .waitSemaphoreCount = 0,
+-- >         .pWaitSemaphores = NULL,
+-- >         .pWaitDstStageMask = NULL,
+-- >         .commandBufferCount = 1,
+-- >         .pCommandBuffers = cmd_bufs,
+-- >         .signalSemaphoreCount = 0,
+-- >         .pSignalSemaphores = NULL
+-- >     };
 -- >     vkQueueSubmit(queue, 1, &submit_info, fence);
 -- >
 -- >     // End the queue label region
@@ -667,22 +673,21 @@
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
 -- -   #VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872# If
---     @pNameInfo->pname@:objectHandle is the valid handle of an
---     instance-level object, the 'Vulkan.Core10.Handles.Device' identified
---     by @device@ /must/ be a descendent of the same
---     'Vulkan.Core10.Handles.Instance' as the object identified by
---     @pNameInfo->pname@:objectHandle
+--     @pNameInfo->objectHandle@ is the valid handle of an instance-level
+--     object, the 'Vulkan.Core10.Handles.Device' identified by @device@
+--     /must/ be a descendent of the same 'Vulkan.Core10.Handles.Instance'
+--     as the object identified by @pNameInfo->objectHandle@
 --
 -- -   #VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07873# If
---     @pNameInfo->pname@:objectHandle is the valid handle of a
+--     @pNameInfo->objectHandle@ is the valid handle of a
 --     physical-device-level object, the 'Vulkan.Core10.Handles.Device'
 --     identified by @device@ /must/ be a descendant of the same
 --     'Vulkan.Core10.Handles.PhysicalDevice' as the object identified by
---     @pNameInfo->pname@:objectHandle
+--     @pNameInfo->objectHandle@
 --
 -- -   #VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07874# If
---     @pNameInfo->pname@:objectHandle is the valid handle of a
---     device-level object, that object /must/ be a descendent of the
+--     @pNameInfo->objectHandle@ is the valid handle of a device-level
+--     object, that object /must/ be a descendent of the
 --     'Vulkan.Core10.Handles.Device' identified by @device@
 --
 -- == Valid Usage (Implicit)
@@ -748,22 +753,21 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875# If
---     @pNameInfo->pname@:objectHandle is the valid handle of an
---     instance-level object, the 'Vulkan.Core10.Handles.Device' identified
---     by @device@ /must/ be a descendent of the same
---     'Vulkan.Core10.Handles.Instance' as the object identified by
---     @pNameInfo->pname@:objectHandle
+--     @pNameInfo->objectHandle@ is the valid handle of an instance-level
+--     object, the 'Vulkan.Core10.Handles.Device' identified by @device@
+--     /must/ be a descendent of the same 'Vulkan.Core10.Handles.Instance'
+--     as the object identified by @pNameInfo->objectHandle@
 --
 -- -   #VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07876# If
---     @pNameInfo->pname@:objectHandle is the valid handle of a
+--     @pNameInfo->objectHandle@ is the valid handle of a
 --     physical-device-level object, the 'Vulkan.Core10.Handles.Device'
 --     identified by @device@ /must/ be a descendant of the same
 --     'Vulkan.Core10.Handles.PhysicalDevice' as the object identified by
---     @pNameInfo->pname@:objectHandle
+--     @pNameInfo->objectHandle@
 --
 -- -   #VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07877# If
---     @pNameInfo->pname@:objectHandle is the valid handle of a
---     device-level object, that object /must/ be a descendent of the
+--     @pNameInfo->objectHandle@ is the valid handle of a device-level
+--     object, that object /must/ be a descendent of the
 --     'Vulkan.Core10.Handles.Device' identified by @device@
 --
 -- == Valid Usage (Implicit)
@@ -832,6 +836,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
@@ -896,6 +901,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
@@ -933,6 +939,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>
@@ -230,15 +233,15 @@
 -- >     PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT");
 -- >
 -- >     VkDebugUtilsMessengerCreateInfoEXT callback1 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType
--- >             NULL,                                                     // pNext
--- >             0,                                                        // flags
--- >             VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT |           // messageSeverity
--- >             VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |             // messageType
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
--- >             myOutputDebugString,                                      // pfnUserCallback
--- >             NULL                                                      // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = 0,
+-- >         .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT |
+-- >                            VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
+-- >         .messageType= VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
+-- >                       VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
+-- >         .pfnUserCallback = myOutputDebugString,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb1);
 -- >     if (res != VK_SUCCESS) {
@@ -254,14 +257,14 @@
 -- >     }
 -- >
 -- >     VkDebugUtilsMessengerCreateInfoEXT callback3 = {
--- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,  // sType
--- >             NULL,                                                     // pNext
--- >             0,                                                        // flags
--- >             VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,          // messageSeverity
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |             // messageType
--- >             VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
--- >             mystdOutLogger,                                           // pfnUserCallback
--- >             NULL                                                      // pUserData
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .flags = 0,
+-- >         .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
+-- >         .messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
+-- >                        VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
+-- >         .pfnUserCallback = mystdOutLogger,
+-- >         .pUserData = NULL
 -- >     };
 -- >     res = pfnCreateDebugUtilsMessengerEXT(instance, &callback3, NULL, &cb3);
 -- >     if (res != VK_SUCCESS) {
@@ -291,11 +294,11 @@
 -- >     // Set a name on the image
 -- >     const VkDebugUtilsObjectNameInfoEXT imageNameInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, // sType
--- >         NULL,                                               // pNext
--- >         VK_OBJECT_TYPE_IMAGE,                               // objectType
--- >         (uint64_t)image,                                    // objectHandle
--- >         "Brick Diffuse Texture",                            // pObjectName
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .objectType = VK_OBJECT_TYPE_IMAGE,
+-- >         .objectHandle = (uint64_t)image,
+-- >         .pObjectName = "Brick Diffuse Texture",
 -- >     };
 -- >
 -- >     pfnSetDebugUtilsObjectNameEXT(device, &imageNameInfo);
@@ -323,10 +326,10 @@
 -- >     // Describe the area being rendered
 -- >     const VkDebugUtilsLabelEXT houseLabel =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType
--- >         NULL,                                    // pNext
--- >         "Brick House",                           // pLabelName
--- >         { 1.0f, 0.0f, 0.0f, 1.0f },              // color
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
+-- >         .pNext = NULL,
+-- >         .pLabelName = "Brick House",
+-- >         .color = { 1.0f, 0.0f, 0.0f, 1.0f },
 -- >     };
 -- >
 -- >     // Start an annotated group of calls under the 'Brick House' name
@@ -335,10 +338,10 @@
 -- >         // A mutable structure for each part being rendered
 -- >         VkDebugUtilsLabelEXT housePartLabel =
 -- >         {
--- >             VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType
--- >             NULL,                                    // pNext
--- >             NULL,                                    // pLabelName
--- >             { 0.0f, 0.0f, 0.0f, 0.0f },              // color
+-- >             .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
+-- >             .pNext = NULL,
+-- >             .pLabelName = NULL,
+-- >             .color = { 0.0f, 0.0f, 0.0f, 0.0f },
 -- >         };
 -- >
 -- >         // Set the name and insert the marker
@@ -377,10 +380,10 @@
 -- >     // Describe the queue being used
 -- >     const VkDebugUtilsLabelEXT queueLabel =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType
--- >         NULL,                                    // pNext
--- >         "Main Render Work",                      // pLabelName
--- >         { 0.0f, 1.0f, 0.0f, 1.0f },              // color
+-- >         .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
+-- >         .pNext = NULL,
+-- >         .pLabelName = "Main Render Work",
+-- >         .color = { 0.0f, 1.0f, 0.0f, 1.0f },
 -- >     };
 -- >
 -- >     // Identify the queue label region
@@ -388,15 +391,18 @@
 -- >
 -- >     // Submit the work for the main render thread
 -- >     const VkCommandBuffer cmd_bufs[] = {commandBuffer};
--- >     VkSubmitInfo submit_info = {.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
--- >                                 .pNext = NULL,
--- >                                 .waitSemaphoreCount = 0,
--- >                                 .pWaitSemaphores = NULL,
--- >                                 .pWaitDstStageMask = NULL,
--- >                                 .commandBufferCount = 1,
--- >                                 .pCommandBuffers = cmd_bufs,
--- >                                 .signalSemaphoreCount = 0,
--- >                                 .pSignalSemaphores = NULL};
+-- >     VkSubmitInfo submit_info =
+-- >     {
+-- >         .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
+-- >         .pNext = NULL,
+-- >         .waitSemaphoreCount = 0,
+-- >         .pWaitSemaphores = NULL,
+-- >         .pWaitDstStageMask = NULL,
+-- >         .commandBufferCount = 1,
+-- >         .pCommandBuffers = cmd_bufs,
+-- >         .signalSemaphoreCount = 0,
+-- >         .pSignalSemaphores = NULL
+-- >     };
 -- >     vkQueueSubmit(queue, 1, &submit_info, fence);
 -- >
 -- >     // End the queue label region
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs
@@ -0,0 +1,657 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_depth_bias_control - device extension
+--
+-- == VK_EXT_depth_bias_control
+--
+-- [__Name String__]
+--     @VK_EXT_depth_bias_control@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     284
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
+-- [__Contact__]
+--
+--     -   Joshua Ashton
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_depth_bias_control] @Joshua-Ashton%0A*Here describe the issue or question you have about the VK_EXT_depth_bias_control extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_depth_bias_control.adoc VK_EXT_depth_bias_control>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-02-15
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Joshua Ashton, VALVE
+--
+--     -   Hans-Kristian Arntzen, VALVE
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+--     -   Georg Lehmann, VALVE
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Lionel Landwerlin, INTEL
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Ricardo Garcia, IGALIA
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Shahbaz Youssefi, GOOGLE
+--
+--     -   Tom Olson, ARM
+--
+-- == Description
+--
+-- This extension adds a new structure, 'DepthBiasRepresentationInfoEXT',
+-- that can be added to a @pNext@ chain of
+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' and allows
+-- setting the scaling and representation of depth bias for a pipeline.
+--
+-- This state can also be set dynamically by using the new structure
+-- mentioned above in combination with the new 'cmdSetDepthBias2EXT'
+-- command.
+--
+-- == New Commands
+--
+-- -   'cmdSetDepthBias2EXT'
+--
+-- == New Structures
+--
+-- -   'DepthBiasInfoEXT'
+--
+-- -   Extending 'DepthBiasInfoEXT',
+--     'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':
+--
+--     -   'DepthBiasRepresentationInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDepthBiasControlFeaturesEXT'
+--
+-- == New Enums
+--
+-- -   'DepthBiasRepresentationEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME'
+--
+-- -   'EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2022-09-22 (Joshua Ashton)
+--
+--     -   Initial draft.
+--
+-- == See Also
+--
+-- 'DepthBiasInfoEXT', 'DepthBiasRepresentationEXT',
+-- 'DepthBiasRepresentationInfoEXT',
+-- 'PhysicalDeviceDepthBiasControlFeaturesEXT', 'cmdSetDepthBias2EXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_bias_control Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_depth_bias_control  ( cmdSetDepthBias2EXT
+                                                    , DepthBiasInfoEXT(..)
+                                                    , DepthBiasRepresentationInfoEXT(..)
+                                                    , PhysicalDeviceDepthBiasControlFeaturesEXT(..)
+                                                    , DepthBiasRepresentationEXT( DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT
+                                                                                , DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT
+                                                                                , DEPTH_BIAS_REPRESENTATION_FLOAT_EXT
+                                                                                , ..
+                                                                                )
+                                                    , EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION
+                                                    , pattern EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION
+                                                    , EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME
+                                                    , pattern EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME
+                                                    ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Data.Typeable (eqT)
+import Foreign.Marshal.Alloc (allocaBytes)
+import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Data.Coerce (coerce)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+import Control.Monad.IO.Class (MonadIO)
+import Data.String (IsString)
+import Data.Type.Equality ((:~:)(Refl))
+import Data.Typeable (Typeable)
+import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
+import Foreign.C.Types (CFloat(CFloat))
+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 Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct.Extends (Chain)
+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(pVkCmdSetDepthBias2EXT))
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdSetDepthBias2EXT
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct DepthBiasInfoEXT) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct DepthBiasInfoEXT) -> IO ()
+
+-- | vkCmdSetDepthBias2EXT - Set depth bias factors and clamp dynamically for
+-- a command buffer
+--
+-- = Description
+--
+-- This command is functionally identical to
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias', but includes
+-- extensible sub-structures that include @sType@ and @pNext@ parameters,
+-- allowing them to be more easily extended.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameter#
+--     @pDepthBiasInfo@ /must/ be a valid pointer to a valid
+--     'DepthBiasInfoEXT' structure
+--
+-- -   #VUID-vkCmdSetDepthBias2EXT-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-vkCmdSetDepthBias2EXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdSetDepthBias2EXT-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_control VK_EXT_depth_bias_control>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DepthBiasInfoEXT'
+cmdSetDepthBias2EXT :: forall a io
+                     . (Extendss DepthBiasInfoEXT a, PokeChain a, MonadIO io)
+                    => -- | @commandBuffer@ is the command buffer into which the command will be
+                       -- recorded.
+                       CommandBuffer
+                    -> -- | @pDepthBiasInfo@ is a pointer to a 'DepthBiasInfoEXT' structure
+                       -- specifying depth bias parameters.
+                       (DepthBiasInfoEXT a)
+                    -> io ()
+cmdSetDepthBias2EXT commandBuffer depthBiasInfo = liftIO . evalContT $ do
+  let vkCmdSetDepthBias2EXTPtr = pVkCmdSetDepthBias2EXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdSetDepthBias2EXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias2EXT is null" Nothing Nothing
+  let vkCmdSetDepthBias2EXT' = mkVkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXTPtr
+  pDepthBiasInfo <- ContT $ withCStruct (depthBiasInfo)
+  lift $ traceAroundEvent "vkCmdSetDepthBias2EXT" (vkCmdSetDepthBias2EXT'
+                                                     (commandBufferHandle (commandBuffer))
+                                                     (forgetExtensions pDepthBiasInfo))
+  pure $ ()
+
+
+-- | VkDepthBiasInfoEXT - Structure specifying depth bias parameters
+--
+-- = Description
+--
+-- If @pNext@ does not contain a 'DepthBiasRepresentationInfoEXT'
+-- structure, then this command is equivalent to including a
+-- 'DepthBiasRepresentationInfoEXT' with @depthBiasExact@ set to
+-- 'Vulkan.Core10.FundamentalTypes.FALSE' and @depthBiasRepresentation@ set
+-- to 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>
+--     feature is not enabled, @depthBiasClamp@ /must/ be @0.0@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkDepthBiasInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT'
+--
+-- -   #VUID-VkDepthBiasInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@ or a
+--     pointer to a valid instance of 'DepthBiasRepresentationInfoEXT'
+--
+-- -   #VUID-VkDepthBiasInfoEXT-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_control VK_EXT_depth_bias_control>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdSetDepthBias2EXT'
+data DepthBiasInfoEXT (es :: [Type]) = DepthBiasInfoEXT
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant
+    -- depth value added to each fragment.
+    depthBiasConstantFactor :: Float
+  , -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.
+    depthBiasClamp :: Float
+  , -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope
+    -- in depth bias calculations.
+    depthBiasSlopeFactor :: Float
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DepthBiasInfoEXT (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (DepthBiasInfoEXT es)
+
+instance Extensible DepthBiasInfoEXT where
+  extensibleTypeName = "DepthBiasInfoEXT"
+  setNext DepthBiasInfoEXT{..} next' = DepthBiasInfoEXT{next = next', ..}
+  getNext DepthBiasInfoEXT{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends DepthBiasInfoEXT e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @DepthBiasRepresentationInfoEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss DepthBiasInfoEXT es
+         , PokeChain es ) => ToCStruct (DepthBiasInfoEXT es) where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DepthBiasInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (depthBiasConstantFactor))
+    lift $ poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (depthBiasClamp))
+    lift $ poke ((p `plusPtr` 24 :: Ptr CFloat)) (CFloat (depthBiasSlopeFactor))
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (zero))
+    lift $ poke ((p `plusPtr` 24 :: Ptr CFloat)) (CFloat (zero))
+    lift $ f
+
+instance ( Extendss DepthBiasInfoEXT es
+         , PeekChain es ) => FromCStruct (DepthBiasInfoEXT es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    depthBiasConstantFactor <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))
+    depthBiasClamp <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))
+    depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 24 :: Ptr CFloat))
+    pure $ DepthBiasInfoEXT
+             next
+             (coerce @CFloat @Float depthBiasConstantFactor)
+             (coerce @CFloat @Float depthBiasClamp)
+             (coerce @CFloat @Float depthBiasSlopeFactor)
+
+instance es ~ '[] => Zero (DepthBiasInfoEXT es) where
+  zero = DepthBiasInfoEXT
+           ()
+           zero
+           zero
+           zero
+
+
+-- | VkDepthBiasRepresentationInfoEXT - Structure specifying depth bias
+-- parameters
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947#
+--     If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-leastRepresentableValueForceUnormRepresentation leastRepresentableValueForceUnormRepresentation>
+--     feature is not enabled, @depthBiasRepresentation@ /must/ not be
+--     'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT'
+--
+-- -   #VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948# If
+--     the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-floatRepresentation floatRepresentation>
+--     feature is not enabled, @depthBiasRepresentation@ /must/ not be
+--     'DEPTH_BIAS_REPRESENTATION_FLOAT_EXT'
+--
+-- -   #VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasExact depthBiasExact>
+--     feature is not enabled, @depthBiasExact@ /must/ be
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkDepthBiasRepresentationInfoEXT-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT'
+--
+-- -   #VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameter#
+--     @depthBiasRepresentation@ /must/ be a valid
+--     'DepthBiasRepresentationEXT' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_control VK_EXT_depth_bias_control>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'DepthBiasRepresentationEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data DepthBiasRepresentationInfoEXT = DepthBiasRepresentationInfoEXT
+  { -- | @depthBiasRepresentation@ is a 'DepthBiasRepresentationEXT' value
+    -- specifying the depth bias representation.
+    depthBiasRepresentation :: DepthBiasRepresentationEXT
+  , -- | @depthBiasExact@ specifies that the implementation is not allowed to
+    -- scale the depth bias value to ensure a minimum resolvable distance.
+    depthBiasExact :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DepthBiasRepresentationInfoEXT)
+#endif
+deriving instance Show DepthBiasRepresentationInfoEXT
+
+instance ToCStruct DepthBiasRepresentationInfoEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DepthBiasRepresentationInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DepthBiasRepresentationEXT)) (depthBiasRepresentation)
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthBiasExact))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DepthBiasRepresentationEXT)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct DepthBiasRepresentationInfoEXT where
+  peekCStruct p = do
+    depthBiasRepresentation <- peek @DepthBiasRepresentationEXT ((p `plusPtr` 16 :: Ptr DepthBiasRepresentationEXT))
+    depthBiasExact <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ DepthBiasRepresentationInfoEXT
+             depthBiasRepresentation (bool32ToBool depthBiasExact)
+
+instance Storable DepthBiasRepresentationInfoEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero DepthBiasRepresentationInfoEXT where
+  zero = DepthBiasRepresentationInfoEXT
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceDepthBiasControlFeaturesEXT - Structure indicating
+-- support for depth bias scaling and representation control
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_control VK_EXT_depth_bias_control>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDepthBiasControlFeaturesEXT = PhysicalDeviceDepthBiasControlFeaturesEXT
+  { -- | #features-depthBiasControl# @depthBiasControl@ indicates whether the
+    -- implementation supports the 'cmdSetDepthBias2EXT' command and the
+    -- 'DepthBiasRepresentationInfoEXT' structure.
+    depthBiasControl :: Bool
+  , -- | #features-leastRepresentableValueForceUnormRepresentation#
+    -- @leastRepresentableValueForceUnormRepresentation@ indicates whether the
+    -- implementation supports using the
+    -- 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT'
+    -- depth bias representation.
+    leastRepresentableValueForceUnormRepresentation :: Bool
+  , -- | #features-floatRepresentation# @floatRepresentation@ indicates whether
+    -- the implementation supports using the
+    -- 'DEPTH_BIAS_REPRESENTATION_FLOAT_EXT' depth bias representation.
+    floatRepresentation :: Bool
+  , -- | #features-depthBiasExact# @depthBiasExact@ indicates whether the
+    -- implementation supports forcing depth bias to not be scaled to ensure a
+    -- minimum resolvable difference using
+    -- 'DepthBiasRepresentationInfoEXT'::@depthBiasExact@.
+    depthBiasExact :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDepthBiasControlFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceDepthBiasControlFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDepthBiasControlFeaturesEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDepthBiasControlFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (depthBiasControl))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (leastRepresentableValueForceUnormRepresentation))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (floatRepresentation))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (depthBiasExact))
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDepthBiasControlFeaturesEXT where
+  peekCStruct p = do
+    depthBiasControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    leastRepresentableValueForceUnormRepresentation <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    floatRepresentation <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    depthBiasExact <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    pure $ PhysicalDeviceDepthBiasControlFeaturesEXT
+             (bool32ToBool depthBiasControl)
+             (bool32ToBool leastRepresentableValueForceUnormRepresentation)
+             (bool32ToBool floatRepresentation)
+             (bool32ToBool depthBiasExact)
+
+instance Storable PhysicalDeviceDepthBiasControlFeaturesEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDepthBiasControlFeaturesEXT where
+  zero = PhysicalDeviceDepthBiasControlFeaturesEXT
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkDepthBiasRepresentationEXT - Specify the depth bias representation
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_control VK_EXT_depth_bias_control>,
+-- 'DepthBiasRepresentationInfoEXT'
+newtype DepthBiasRepresentationEXT = DepthBiasRepresentationEXT Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT'
+-- specifies that the depth bias representation is a factor of the format’s
+-- r as described in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-depthbias-computation>.
+pattern DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = DepthBiasRepresentationEXT 0
+
+-- | 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT'
+-- specifies that the depth bias representation is a factor of a constant r
+-- defined by the bit-size or mantissa of the format as described in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-depthbias-computation>.
+pattern DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = DepthBiasRepresentationEXT 1
+
+-- | 'DEPTH_BIAS_REPRESENTATION_FLOAT_EXT' specifies that the depth bias
+-- representation is a factor of constant r equal to 1.
+pattern DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = DepthBiasRepresentationEXT 2
+
+{-# COMPLETE
+  DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT
+  , DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT
+  , DEPTH_BIAS_REPRESENTATION_FLOAT_EXT ::
+    DepthBiasRepresentationEXT
+  #-}
+
+conNameDepthBiasRepresentationEXT :: String
+conNameDepthBiasRepresentationEXT = "DepthBiasRepresentationEXT"
+
+enumPrefixDepthBiasRepresentationEXT :: String
+enumPrefixDepthBiasRepresentationEXT = "DEPTH_BIAS_REPRESENTATION_"
+
+showTableDepthBiasRepresentationEXT :: [(DepthBiasRepresentationEXT, String)]
+showTableDepthBiasRepresentationEXT =
+  [
+    ( DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT
+    , "LEAST_REPRESENTABLE_VALUE_FORMAT_EXT"
+    )
+  ,
+    ( DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT
+    , "LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT"
+    )
+  ,
+    ( DEPTH_BIAS_REPRESENTATION_FLOAT_EXT
+    , "FLOAT_EXT"
+    )
+  ]
+
+instance Show DepthBiasRepresentationEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixDepthBiasRepresentationEXT
+      showTableDepthBiasRepresentationEXT
+      conNameDepthBiasRepresentationEXT
+      (\(DepthBiasRepresentationEXT x) -> x)
+      (showsPrec 11)
+
+instance Read DepthBiasRepresentationEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixDepthBiasRepresentationEXT
+      showTableDepthBiasRepresentationEXT
+      conNameDepthBiasRepresentationEXT
+      DepthBiasRepresentationEXT
+
+type EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION"
+pattern EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION = 1
+
+
+type EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME = "VK_EXT_depth_bias_control"
+
+-- No documentation found for TopLevel "VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME"
+pattern EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME = "VK_EXT_depth_bias_control"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot
@@ -0,0 +1,174 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_depth_bias_control - device extension
+--
+-- == VK_EXT_depth_bias_control
+--
+-- [__Name String__]
+--     @VK_EXT_depth_bias_control@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     284
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>
+--
+-- [__Contact__]
+--
+--     -   Joshua Ashton
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_depth_bias_control] @Joshua-Ashton%0A*Here describe the issue or question you have about the VK_EXT_depth_bias_control extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_depth_bias_control.adoc VK_EXT_depth_bias_control>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-02-15
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Joshua Ashton, VALVE
+--
+--     -   Hans-Kristian Arntzen, VALVE
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+--     -   Georg Lehmann, VALVE
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Lionel Landwerlin, INTEL
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Ricardo Garcia, IGALIA
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Shahbaz Youssefi, GOOGLE
+--
+--     -   Tom Olson, ARM
+--
+-- == Description
+--
+-- This extension adds a new structure, 'DepthBiasRepresentationInfoEXT',
+-- that can be added to a @pNext@ chain of
+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' and allows
+-- setting the scaling and representation of depth bias for a pipeline.
+--
+-- This state can also be set dynamically by using the new structure
+-- mentioned above in combination with the new 'cmdSetDepthBias2EXT'
+-- command.
+--
+-- == New Commands
+--
+-- -   'cmdSetDepthBias2EXT'
+--
+-- == New Structures
+--
+-- -   'DepthBiasInfoEXT'
+--
+-- -   Extending 'DepthBiasInfoEXT',
+--     'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':
+--
+--     -   'DepthBiasRepresentationInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDepthBiasControlFeaturesEXT'
+--
+-- == New Enums
+--
+-- -   'DepthBiasRepresentationEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME'
+--
+-- -   'EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2022-09-22 (Joshua Ashton)
+--
+--     -   Initial draft.
+--
+-- == See Also
+--
+-- 'DepthBiasInfoEXT', 'DepthBiasRepresentationEXT',
+-- 'DepthBiasRepresentationInfoEXT',
+-- 'PhysicalDeviceDepthBiasControlFeaturesEXT', 'cmdSetDepthBias2EXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_bias_control Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_depth_bias_control  ( DepthBiasInfoEXT
+                                                    , DepthBiasRepresentationInfoEXT
+                                                    , PhysicalDeviceDepthBiasControlFeaturesEXT
+                                                    ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
+type role DepthBiasInfoEXT nominal
+data DepthBiasInfoEXT (es :: [Type])
+
+instance ( Extendss DepthBiasInfoEXT es
+         , PokeChain es ) => ToCStruct (DepthBiasInfoEXT es)
+instance Show (Chain es) => Show (DepthBiasInfoEXT es)
+
+instance ( Extendss DepthBiasInfoEXT es
+         , PeekChain es ) => FromCStruct (DepthBiasInfoEXT es)
+
+
+data DepthBiasRepresentationInfoEXT
+
+instance ToCStruct DepthBiasRepresentationInfoEXT
+instance Show DepthBiasRepresentationInfoEXT
+
+instance FromCStruct DepthBiasRepresentationInfoEXT
+
+
+data PhysicalDeviceDepthBiasControlFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDepthBiasControlFeaturesEXT
+instance Show PhysicalDeviceDepthBiasControlFeaturesEXT
+
+instance FromCStruct PhysicalDeviceDepthBiasControlFeaturesEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs
--- a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs
--- a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs b/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs
--- a/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs
+++ b/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Piers Daniell
diff --git a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs
--- a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs
+++ b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -388,6 +391,7 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Handles (Buffer)
 import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
 import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core10.Handles (CommandBuffer)
 import Vulkan.Core10.Handles (CommandBuffer(..))
@@ -515,7 +519,8 @@
 --
 -- -   #VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012# @layout@ /must/
 --     have been created with the
---     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--     flag set
 --
 -- == Valid Usage (Implicit)
 --
@@ -579,8 +584,8 @@
 -- precise location accessed by a shader for a given descriptor is as
 -- follows:
 --
--- -   location = bufferAddress + setOffset + descriptorOffset
---     (arrayElement * descriptorSize)
+-- -   location = bufferAddress + setOffset + descriptorOffset +
+--     (arrayElement × descriptorSize)
 --
 -- where bufferAddress and setOffset are the base address and offset for
 -- the identified descriptor set as specified by
@@ -618,7 +623,8 @@
 --
 -- -   #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014#
 --     @layout@ /must/ have been created with the
---     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--     flag set
 --
 -- == Valid Usage (Implicit)
 --
@@ -1037,6 +1043,13 @@
 --     @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s
 --     parent 'Vulkan.Core10.Handles.CommandPool'’s queue family
 --
+-- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006# The
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' for each set from
+--     @firstSet@ to @firstSet@ + @setCount@ when @layout@ was created
+--     /must/ have been created with the
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
+--     bit set
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter#
@@ -2291,6 +2304,13 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
 --     feature is not enabled, @address@ /must/ not be zero
 --
+-- -   #VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938# If @address@
+--     is zero, @range@ /must/ be 'Vulkan.Core10.APIConstants.WHOLE_SIZE'
+--
+-- -   #VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939# If @address@
+--     is not zero, @range@ /must/ not be
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE'
+--
 -- -   #VUID-VkDescriptorAddressInfoEXT-None-08044# If @address@ is not
 --     zero, @address@ /must/ be a valid device address at an offset within
 --     a 'Vulkan.Core10.Handles.Buffer'
@@ -2299,8 +2319,8 @@
 --     than or equal to the size of the buffer containing @address@ minus
 --     the offset of @address@ from the base address of the buffer
 --
--- -   #VUID-VkDescriptorAddressInfoEXT-range-08046# @range@ must not be
---     'Vulkan.Core10.APIConstants.WHOLE_SIZE'
+-- -   #VUID-VkDescriptorAddressInfoEXT-range-08940# @range@ /must/ not be
+--     zero
 --
 -- == Valid Usage (Implicit)
 --
@@ -2387,14 +2407,22 @@
 -- | VkDescriptorBufferBindingInfoEXT - Structure specifying descriptor
 -- buffer binding information
 --
+-- = Description
+--
+-- If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain,
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
+-- from that structure is used instead of @flags@ from this structure.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056#
 --     If
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors ::bufferlessPushDescriptors>
 --     is 'Vulkan.Core10.FundamentalTypes.FALSE', and @usage@ contains
---     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the
---     @pNext@ chain /must/ include a
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT',
+--     then the @pNext@ chain /must/ include a
 --     'DescriptorBufferBindingPushDescriptorBufferHandleEXT' structure
 --
 -- -   #VUID-VkDescriptorBufferBindingInfoEXT-address-08057# @address@
@@ -2428,9 +2456,11 @@
 --     be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT'
 --
--- -   #VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNext# @pNext@ /must/
---     be @NULL@ or a pointer to a valid instance of
---     'DescriptorBufferBindingPushDescriptorBufferHandleEXT'
+-- -   #VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'
+--     or 'DescriptorBufferBindingPushDescriptorBufferHandleEXT'
 --
 -- -   #VUID-VkDescriptorBufferBindingInfoEXT-sType-unique# The @sType@
 --     value of each struct in the @pNext@ chain /must/ be unique
@@ -2450,11 +2480,15 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'cmdBindDescriptorBuffersEXT'
 data DescriptorBufferBindingInfoEXT (es :: [Type]) = DescriptorBufferBindingInfoEXT
-  { -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "pNext"
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
     next :: Chain es
-  , -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "address"
+  , -- | @address@ is a 'Vulkan.Core10.FundamentalTypes.DeviceAddress' specifying
+    -- the device address defining the descriptor buffer to be bound.
     address :: DeviceAddress
-  , -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "usage"
+  , -- | @usage@ is a bitmask of
+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' specifying
+    -- the 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@ for the buffer from
+    -- which @address@ was queried.
     usage :: BufferUsageFlags
   }
   deriving (Typeable)
@@ -2470,6 +2504,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorBufferBindingInfoEXT e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @DescriptorBufferBindingPushDescriptorBufferHandleEXT = Just f
+    | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss DescriptorBufferBindingInfoEXT es
@@ -3026,7 +3061,7 @@
 --     @accelerationStructureNV@ /must/ have been created with
 --     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT'
 --     set in
---     'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV'::info::@flags@
+--     'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV'::@info.flags@
 --
 -- -   #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093#
 --     If @accelerationStructure@ is not
diff --git a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs b/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs
--- a/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs
+++ b/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 VK_KHR_maintenance3>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs
--- a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs
+++ b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_device_fault.hs b/src/Vulkan/Extensions/VK_EXT_device_fault.hs
--- a/src/Vulkan/Extensions/VK_EXT_device_fault.hs
+++ b/src/Vulkan/Extensions/VK_EXT_device_fault.hs
@@ -15,8 +15,11 @@
 --     342
 --
 -- [__Revision__]
---     1
+--     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -110,6 +113,12 @@
 --
 -- == Version History
 --
+-- -   Revision 2, 2023-04-05 (Ralph Potter)
+--
+--     -   Restored two missing members to the XML definition of
+--         VkDeviceFaultVendorBinaryHeaderVersionOneEXT. No functional
+--         change to the specification.
+--
 -- -   Revision 1, 2020-10-19 (Ralph Potter)
 --
 --     -   Initial revision
@@ -863,6 +872,14 @@
     -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@pEngineName@
     -- during instance creation.
     engineNameOffset :: Word32
+  , -- | @engineVersion@ /must/ be zero or the value specified by
+    -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@engineVersion@
+    -- during instance creation.
+    engineVersion :: Word32
+  , -- | @apiVersion@ /must/ be zero or the value specified by
+    -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@
+    -- during instance creation.
+    apiVersion :: Word32
   }
   deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
@@ -871,7 +888,7 @@
 deriving instance Show DeviceFaultVendorBinaryHeaderVersionOneEXT
 
 instance ToCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
   pokeCStruct p DeviceFaultVendorBinaryHeaderVersionOneEXT{..} f = do
     poke ((p `plusPtr` 0 :: Ptr Word32)) (headerSize)
     poke ((p `plusPtr` 4 :: Ptr DeviceFaultVendorBinaryHeaderVersionEXT)) (headerVersion)
@@ -882,8 +899,10 @@
     poke ((p `plusPtr` 36 :: Ptr Word32)) (applicationNameOffset)
     poke ((p `plusPtr` 40 :: Ptr Word32)) (applicationVersion)
     poke ((p `plusPtr` 44 :: Ptr Word32)) (engineNameOffset)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (engineVersion)
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (apiVersion)
     f
-  cStructSize = 48
+  cStructSize = 56
   cStructAlignment = 4
   pokeZeroCStruct p f = do
     poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
@@ -895,6 +914,8 @@
     poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)
     poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
     poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
     f
 
 instance FromCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where
@@ -908,6 +929,8 @@
     applicationNameOffset <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
     applicationVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
     engineNameOffset <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
+    engineVersion <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
+    apiVersion <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
     pure $ DeviceFaultVendorBinaryHeaderVersionOneEXT
              headerSize
              headerVersion
@@ -918,9 +941,11 @@
              applicationNameOffset
              applicationVersion
              engineNameOffset
+             engineVersion
+             apiVersion
 
 instance Storable DeviceFaultVendorBinaryHeaderVersionOneEXT where
-  sizeOf ~_ = 48
+  sizeOf ~_ = 56
   alignment ~_ = 4
   peek = peekCStruct
   poke ptr poked = pokeCStruct ptr poked (pure ())
@@ -936,6 +961,8 @@
            zero
            zero
            zero
+           zero
+           zero
 
 
 -- | VkDeviceFaultAddressTypeEXT - Page fault access types
@@ -1103,11 +1130,11 @@
       conNameDeviceFaultVendorBinaryHeaderVersionEXT
       DeviceFaultVendorBinaryHeaderVersionEXT
 
-type EXT_DEVICE_FAULT_SPEC_VERSION = 1
+type EXT_DEVICE_FAULT_SPEC_VERSION = 2
 
 -- No documentation found for TopLevel "VK_EXT_DEVICE_FAULT_SPEC_VERSION"
 pattern EXT_DEVICE_FAULT_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_DEVICE_FAULT_SPEC_VERSION = 1
+pattern EXT_DEVICE_FAULT_SPEC_VERSION = 2
 
 
 type EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault"
diff --git a/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot
@@ -15,8 +15,11 @@
 --     342
 --
 -- [__Revision__]
---     1
+--     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -109,6 +112,12 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT'
 --
 -- == Version History
+--
+-- -   Revision 2, 2023-04-05 (Ralph Potter)
+--
+--     -   Restored two missing members to the XML definition of
+--         VkDeviceFaultVendorBinaryHeaderVersionOneEXT. No functional
+--         change to the specification.
 --
 -- -   Revision 1, 2020-10-19 (Ralph Potter)
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs
--- a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs
+++ b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs b/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs
--- a/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs
+++ b/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs
--- a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs
+++ b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs
--- a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs
+++ b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_display_control.hs b/src/Vulkan/Extensions/VK_EXT_display_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_display_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_display_control.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_surface_counter VK_EXT_display_surface_counter>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_surface_counter VK_EXT_display_surface_counter>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
--- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
+++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
 --
@@ -198,11 +201,12 @@
 --
 -- == Valid Usage
 --
--- -   [[VUID-{refpage}-surface-06523]] @surface@ /must/ be a valid
---     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523#
+--     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
+--     handle
 --
--- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
---     @physicalDevice@, as reported by
+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211#
+--     @surface@ /must/ be supported by @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
 --     or an equivalent platform-specific mechanism
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs
@@ -0,0 +1,266 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_dynamic_rendering_unused_attachments - device extension
+--
+-- == VK_EXT_dynamic_rendering_unused_attachments
+--
+-- [__Name String__]
+--     @VK_EXT_dynamic_rendering_unused_attachments@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     500
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_dynamic_rendering_unused_attachments] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_dynamic_rendering_unused_attachments extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc VK_EXT_dynamic_rendering_unused_attachments>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-22
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   James Fitzpatrick, Imagination Technologies
+--
+--     -   Pan Gao, Huawei Technologies
+--
+--     -   Ricardo Garcia, Igalia
+--
+--     -   Stu Smith, AMD
+--
+-- == Description
+--
+-- This extension lifts some restrictions in the @VK_KHR_dynamic_rendering@
+-- extension to allow render pass instances and bound pipelines within
+-- those render pass instances to have an unused attachment specified in
+-- one but not the other. It also allows pipelines to use different formats
+-- in a render pass as long the attachment is NULL.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME'
+--
+-- -   'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-05-22 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_dynamic_rendering_unused_attachments Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments  ( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(..)
+                                                                      , EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION
+                                                                      , pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION
+                                                                      , EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME
+                                                                      , pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME
+                                                                      ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT))
+-- | VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT - Structure
+-- describing the dynamic rendering unused attachment features that can be
+-- supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+-- 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. 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+-- /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_EXT_dynamic_rendering_unused_attachments VK_EXT_dynamic_rendering_unused_attachments>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+  { -- | #features-dynamicRenderingUnusedAttachments#
+    -- @dynamicRenderingUnusedAttachments@ indicates that the implementation
+    -- supports binding graphics pipelines within a render pass instance where
+    -- any pipeline
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+    -- element with a format other than
+    -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with a
+    -- corresponding
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+    -- element with a @imageView@ equal to
+    -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', or any pipeline
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+    -- element with a 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' format is
+    -- allowed with a corresponding
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+    -- element with a non-'Vulkan.Core10.APIConstants.NULL_HANDLE' @imageView@.
+    -- Also a
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+    -- other than 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with
+    -- a 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@,
+    -- or a
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+    -- of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with a
+    -- non-'Vulkan.Core10.APIConstants.NULL_HANDLE'
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@.
+    -- Also a
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+    -- other than 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with
+    -- a 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@,
+    -- or a
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+    -- of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with a
+    -- non-'Vulkan.Core10.APIConstants.NULL_HANDLE'
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@.
+    -- Any writes to a
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@,
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@,
+    -- or
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@
+    -- with 'Vulkan.Core10.APIConstants.NULL_HANDLE' are discarded.
+    dynamicRenderingUnusedAttachments :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicRenderingUnusedAttachments))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where
+  peekCStruct p = do
+    dynamicRenderingUnusedAttachments <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+             (bool32ToBool dynamicRenderingUnusedAttachments)
+
+instance Storable PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where
+  zero = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+           zero
+
+
+type EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION"
+pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION = 1
+
+
+type EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME = "VK_EXT_dynamic_rendering_unused_attachments"
+
+-- No documentation found for TopLevel "VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME"
+pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME = "VK_EXT_dynamic_rendering_unused_attachments"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot
@@ -0,0 +1,127 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_dynamic_rendering_unused_attachments - device extension
+--
+-- == VK_EXT_dynamic_rendering_unused_attachments
+--
+-- [__Name String__]
+--     @VK_EXT_dynamic_rendering_unused_attachments@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     500
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_dynamic_rendering_unused_attachments] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_dynamic_rendering_unused_attachments extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc VK_EXT_dynamic_rendering_unused_attachments>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-22
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   James Fitzpatrick, Imagination Technologies
+--
+--     -   Pan Gao, Huawei Technologies
+--
+--     -   Ricardo Garcia, Igalia
+--
+--     -   Stu Smith, AMD
+--
+-- == Description
+--
+-- This extension lifts some restrictions in the @VK_KHR_dynamic_rendering@
+-- extension to allow render pass instances and bound pipelines within
+-- those render pass instances to have an unused attachment specified in
+-- one but not the other. It also allows pipelines to use different formats
+-- in a render pass as long the attachment is NULL.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME'
+--
+-- -   'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-05-22 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_dynamic_rendering_unused_attachments Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments  (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+
+instance ToCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+instance Show PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+
+instance FromCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
@@ -150,7 +153,12 @@
 -- interfaces that were promoted remain available as aliases of the core
 -- functionality.
 --
--- === Why are the values of @pStrides@ in 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' limited to be between 0 and the maximum extent of the binding, when this restriction is not present for the same static state?
+-- == Issues
+--
+-- 1) Why are the values of @pStrides@ in
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+-- limited to be between 0 and the maximum extent of the binding, when this
+-- restriction is not present for the same static state?
 --
 -- Implementing these edge cases adds overhead to some implementations that
 -- would require significant cost when calling this function, and the
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
@@ -150,7 +153,12 @@
 -- interfaces that were promoted remain available as aliases of the core
 -- functionality.
 --
--- === Why are the values of @pStrides@ in 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' limited to be between 0 and the maximum extent of the binding, when this restriction is not present for the same static state?
+-- == Issues
+--
+-- 1) Why are the values of @pStrides@ in
+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+-- limited to be between 0 and the maximum extent of the binding, when this
+-- restriction is not present for the same static state?
 --
 -- Implementing these edge cases adds overhead to some implementations that
 -- would require significant cost when calling this function, and the
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -80,18 +83,6 @@
 --
 -- -   'cmdSetConservativeRasterizationModeEXT'
 --
--- -   'cmdSetCoverageModulationModeNV'
---
--- -   'cmdSetCoverageModulationTableEnableNV'
---
--- -   'cmdSetCoverageModulationTableNV'
---
--- -   'cmdSetCoverageReductionModeNV'
---
--- -   'cmdSetCoverageToColorEnableNV'
---
--- -   'cmdSetCoverageToColorLocationNV'
---
 -- -   'cmdSetDepthClampEnableEXT'
 --
 -- -   'cmdSetDepthClipEnableEXT'
@@ -114,20 +105,60 @@
 --
 -- -   'cmdSetRasterizationStreamEXT'
 --
--- -   'cmdSetRepresentativeFragmentTestEnableNV'
---
 -- -   'cmdSetSampleLocationsEnableEXT'
 --
 -- -   'cmdSetSampleMaskEXT'
 --
--- -   'cmdSetShadingRateImageEnableNV'
---
 -- -   'cmdSetTessellationDomainOriginEXT'
 --
--- -   'cmdSetViewportSwizzleNV'
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>
+-- is supported:
 --
 -- -   'cmdSetViewportWScalingEnableNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>
+-- is supported:
+--
+-- -   'cmdSetCoverageReductionModeNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>
+-- is supported:
+--
+-- -   'cmdSetCoverageToColorEnableNV'
+--
+-- -   'cmdSetCoverageToColorLocationNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
+-- is supported:
+--
+-- -   'cmdSetCoverageModulationModeNV'
+--
+-- -   'cmdSetCoverageModulationTableEnableNV'
+--
+-- -   'cmdSetCoverageModulationTableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>
+-- is supported:
+--
+-- -   'cmdSetRepresentativeFragmentTestEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
+-- is supported:
+--
+-- -   'cmdSetShadingRateImageEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>
+-- is supported:
+--
+-- -   'cmdSetViewportSwizzleNV'
+--
 -- == New Structures
 --
 -- -   'ColorBlendAdvancedEXT'
@@ -167,18 +198,6 @@
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
---
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
@@ -201,26 +220,80 @@
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
---
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
---
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'
---
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'
+--
 -- == Issues
 --
 -- 1) What about the VkPipelineMultisampleStateCreateInfo state
@@ -252,22 +325,14 @@
 -- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT',
 -- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT',
 -- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT',
--- 'cmdSetConservativeRasterizationModeEXT',
--- 'cmdSetCoverageModulationModeNV',
--- 'cmdSetCoverageModulationTableEnableNV',
--- 'cmdSetCoverageModulationTableNV', 'cmdSetCoverageReductionModeNV',
--- 'cmdSetCoverageToColorEnableNV', 'cmdSetCoverageToColorLocationNV',
--- 'cmdSetDepthClampEnableEXT', 'cmdSetDepthClipEnableEXT',
--- 'cmdSetDepthClipNegativeOneToOneEXT',
+-- 'cmdSetConservativeRasterizationModeEXT', 'cmdSetDepthClampEnableEXT',
+-- 'cmdSetDepthClipEnableEXT', 'cmdSetDepthClipNegativeOneToOneEXT',
 -- 'cmdSetExtraPrimitiveOverestimationSizeEXT',
 -- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT',
 -- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT',
 -- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT',
--- 'cmdSetRasterizationStreamEXT',
--- 'cmdSetRepresentativeFragmentTestEnableNV',
--- 'cmdSetSampleLocationsEnableEXT', 'cmdSetSampleMaskEXT',
--- 'cmdSetShadingRateImageEnableNV', 'cmdSetTessellationDomainOriginEXT',
--- 'cmdSetViewportSwizzleNV', 'cmdSetViewportWScalingEnableNV'
+-- 'cmdSetRasterizationStreamEXT', 'cmdSetSampleLocationsEnableEXT',
+-- 'cmdSetSampleMaskEXT', 'cmdSetTessellationDomainOriginEXT'
 --
 -- == Document Notes
 --
@@ -920,8 +985,9 @@
                        CommandBuffer
                     -> -- | @samples@ specifies the number of sample bits in the @pSampleMask@.
                        ("samples" ::: SampleCountFlagBits)
-                    -> -- | @pSampleMask@ is a pointer to an array of VkSampleMask values, where the
-                       -- array size is based on the @samples@ parameter.
+                    -> -- | @pSampleMask@ is a pointer to an array of
+                       -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values, where the array size
+                       -- is based on the @samples@ parameter.
                        ("sampleMask" ::: Vector SampleMask)
                     -> io ()
 cmdSetSampleMaskEXT commandBuffer samples sampleMask = liftIO . evalContT $ do
@@ -964,8 +1030,8 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-None-08506# Either the
---     \<features-extendedDynamicState3AlphaToCoverageEnable,
---     @extendedDynamicState3AlphaToCoverageEnable@>> feature or the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>
+--     feature or the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>
 --     feature or both /must/ be enabled
 --
@@ -1466,6 +1532,15 @@
 -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@colorWriteMask@
 -- values used to create the currently active pipeline.
 --
+-- Note
+--
+-- Formats with bits that are shared between components specified by
+-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits',
+-- such as 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32',
+-- cannot have their channels individually masked by this functionality;
+-- either all components that share bits have to be enabled, or none of
+-- them.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkCmdSetColorWriteMaskEXT-None-08540# Either the
@@ -2635,6 +2710,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>,
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetViewportWScalingEnableNV :: forall io
@@ -2738,6 +2814,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>,
 -- 'Vulkan.Core10.Handles.CommandBuffer',
 -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV'
 cmdSetViewportSwizzleNV :: forall io
@@ -2840,6 +2917,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>,
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetCoverageToColorEnableNV :: forall io
@@ -2931,6 +3009,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>,
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetCoverageToColorLocationNV :: forall io
                                  . (MonadIO io)
@@ -3027,6 +3106,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,
 -- 'Vulkan.Core10.Handles.CommandBuffer',
 -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.CoverageModulationModeNV'
 cmdSetCoverageModulationModeNV :: forall io
@@ -3119,6 +3199,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetCoverageModulationTableEnableNV :: forall io
@@ -3221,6 +3302,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetCoverageModulationTableNV :: forall io
                                  . (MonadIO io)
@@ -3316,6 +3398,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>,
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetShadingRateImageEnableNV :: forall io
@@ -3413,6 +3496,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>,
 -- 'Vulkan.Core10.Handles.CommandBuffer',
 -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.CoverageReductionModeNV'
 cmdSetCoverageReductionModeNV :: forall io
@@ -3505,6 +3589,7 @@
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_object VK_EXT_shader_object>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>,
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Handles.CommandBuffer'
 cmdSetRepresentativeFragmentTestEnableNV :: forall io
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -80,18 +83,6 @@
 --
 -- -   'cmdSetConservativeRasterizationModeEXT'
 --
--- -   'cmdSetCoverageModulationModeNV'
---
--- -   'cmdSetCoverageModulationTableEnableNV'
---
--- -   'cmdSetCoverageModulationTableNV'
---
--- -   'cmdSetCoverageReductionModeNV'
---
--- -   'cmdSetCoverageToColorEnableNV'
---
--- -   'cmdSetCoverageToColorLocationNV'
---
 -- -   'cmdSetDepthClampEnableEXT'
 --
 -- -   'cmdSetDepthClipEnableEXT'
@@ -114,20 +105,60 @@
 --
 -- -   'cmdSetRasterizationStreamEXT'
 --
--- -   'cmdSetRepresentativeFragmentTestEnableNV'
---
 -- -   'cmdSetSampleLocationsEnableEXT'
 --
 -- -   'cmdSetSampleMaskEXT'
 --
--- -   'cmdSetShadingRateImageEnableNV'
---
 -- -   'cmdSetTessellationDomainOriginEXT'
 --
--- -   'cmdSetViewportSwizzleNV'
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>
+-- is supported:
 --
 -- -   'cmdSetViewportWScalingEnableNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>
+-- is supported:
+--
+-- -   'cmdSetCoverageReductionModeNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>
+-- is supported:
+--
+-- -   'cmdSetCoverageToColorEnableNV'
+--
+-- -   'cmdSetCoverageToColorLocationNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
+-- is supported:
+--
+-- -   'cmdSetCoverageModulationModeNV'
+--
+-- -   'cmdSetCoverageModulationTableEnableNV'
+--
+-- -   'cmdSetCoverageModulationTableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>
+-- is supported:
+--
+-- -   'cmdSetRepresentativeFragmentTestEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
+-- is supported:
+--
+-- -   'cmdSetShadingRateImageEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>
+-- is supported:
+--
+-- -   'cmdSetViewportSwizzleNV'
+--
 -- == New Structures
 --
 -- -   'ColorBlendAdvancedEXT'
@@ -167,18 +198,6 @@
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
---
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'
@@ -201,26 +220,80 @@
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
---
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
 --
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
---
 --     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'
 --
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'
---
---     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'
---
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>
+-- is supported:
+--
+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':
+--
+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'
+--
 -- == Issues
 --
 -- 1) What about the VkPipelineMultisampleStateCreateInfo state
@@ -252,22 +325,14 @@
 -- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT',
 -- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT',
 -- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT',
--- 'cmdSetConservativeRasterizationModeEXT',
--- 'cmdSetCoverageModulationModeNV',
--- 'cmdSetCoverageModulationTableEnableNV',
--- 'cmdSetCoverageModulationTableNV', 'cmdSetCoverageReductionModeNV',
--- 'cmdSetCoverageToColorEnableNV', 'cmdSetCoverageToColorLocationNV',
--- 'cmdSetDepthClampEnableEXT', 'cmdSetDepthClipEnableEXT',
--- 'cmdSetDepthClipNegativeOneToOneEXT',
+-- 'cmdSetConservativeRasterizationModeEXT', 'cmdSetDepthClampEnableEXT',
+-- 'cmdSetDepthClipEnableEXT', 'cmdSetDepthClipNegativeOneToOneEXT',
 -- 'cmdSetExtraPrimitiveOverestimationSizeEXT',
 -- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT',
 -- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT',
 -- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT',
--- 'cmdSetRasterizationStreamEXT',
--- 'cmdSetRepresentativeFragmentTestEnableNV',
--- 'cmdSetSampleLocationsEnableEXT', 'cmdSetSampleMaskEXT',
--- 'cmdSetShadingRateImageEnableNV', 'cmdSetTessellationDomainOriginEXT',
--- 'cmdSetViewportSwizzleNV', 'cmdSetViewportWScalingEnableNV'
+-- 'cmdSetRasterizationStreamEXT', 'cmdSetSampleLocationsEnableEXT',
+-- 'cmdSetSampleMaskEXT', 'cmdSetTessellationDomainOriginEXT'
 --
 -- == Document Notes
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs
@@ -0,0 +1,248 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_external_memory_acquire_unmodified - device extension
+--
+-- == VK_EXT_external_memory_acquire_unmodified
+--
+-- [__Name String__]
+--     @VK_EXT_external_memory_acquire_unmodified@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     454
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--
+-- [__Contact__]
+--
+--     -   Lina Versace
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_external_memory_acquire_unmodified] @versalinyaa%0A*Here describe the issue or question you have about the VK_EXT_external_memory_acquire_unmodified extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_external_memory_acquire_unmodified.adoc VK_EXT_external_memory_acquire_unmodified>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-03-09
+--
+-- [__Contributors__]
+--
+--     -   Lina Versace, Google
+--
+--     -   Chia-I Wu, Google
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Yiwei Zhang, Google
+--
+-- == Description
+--
+-- A memory barrier /may/ have a performance penalty when acquiring
+-- ownership of a subresource range from an external queue family. This
+-- extension provides API that /may/ reduce the performance penalty if
+-- ownership of the subresource range was previously released to the
+-- external queue family and if the resource’s memory has remained
+-- unmodified between the release and acquire operations.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',
+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2':
+--
+--     -   'ExternalMemoryAcquireUnmodifiedEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME'
+--
+-- -   'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-03-09 (Lina Versace)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'ExternalMemoryAcquireUnmodifiedEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_acquire_unmodified Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified  ( ExternalMemoryAcquireUnmodifiedEXT(..)
+                                                                    , EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION
+                                                                    , pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION
+                                                                    , EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME
+                                                                    , pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME
+                                                                    ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT))
+-- | VkExternalMemoryAcquireUnmodifiedEXT - Structure specifying that
+-- external memory has remained unmodified since releasing ownership
+--
+-- = Description
+--
+-- If the application releases ownership of the subresource range to one of
+-- the special queue families reserved for external memory ownership
+-- transfers with a memory barrier structure, and later re-acquires
+-- ownership from the same queue family with a memory barrier structure,
+-- and if no range of 'Vulkan.Core10.Handles.DeviceMemory' bound to the
+-- resource was modified at any time between the /release operation/ and
+-- the /acquire operation/, then the application /should/ add a
+-- 'ExternalMemoryAcquireUnmodifiedEXT' structure to the @pNext@ chain of
+-- the /acquire operation/\'s memory barrier structure because this /may/
+-- reduce the performance penalty.
+--
+-- This struct is ignored if @acquireUnmodifiedMemory@ is
+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. In particular,
+-- 'Vulkan.Core10.FundamentalTypes.FALSE' does /not/ specify that memory
+-- was modified.
+--
+-- This struct is ignored if the memory barrier’s @srcQueueFamilyIndex@ is
+-- not a special queue family reserved for external memory ownership
+-- transfers.
+--
+-- Note
+--
+-- The method by which the application determines whether memory was
+-- modified between the /release operation/ and /acquire operation/ is
+-- outside the scope of Vulkan.
+--
+-- For any Vulkan operation that accesses a resource, the application
+-- /must/ not assume the implementation accesses the resource’s memory as
+-- read-only, even for /apparently/ read-only operations such as transfer
+-- commands and shader reads.
+--
+-- The validity of
+-- 'ExternalMemoryAcquireUnmodifiedEXT'::@acquireUnmodifiedMemory@ is
+-- independent of memory ranges outside the ranges of
+-- 'Vulkan.Core10.Handles.DeviceMemory' bound to the resource. In
+-- particular, it is independent of any implementation-private memory
+-- associated with the resource.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922#
+--     If @acquireUnmodifiedMemory@ is
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the memory barrier’s
+--     @srcQueueFamilyIndex@ is a special queue family reserved for
+--     external memory ownership transfers (as described in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>),
+--     then each range of 'Vulkan.Core10.Handles.DeviceMemory' bound to the
+--     resource /must/ have remained unmodified during all time since the
+--     resource’s most recent release of ownership to the queue family.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_acquire_unmodified VK_EXT_external_memory_acquire_unmodified>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ExternalMemoryAcquireUnmodifiedEXT = ExternalMemoryAcquireUnmodifiedEXT
+  { -- | @acquireUnmodifiedMemory@ specifies, if
+    -- 'Vulkan.Core10.FundamentalTypes.TRUE', that no range of
+    -- 'Vulkan.Core10.Handles.DeviceMemory' bound to the resource of the memory
+    -- barrier’s subresource range was modified at any time since the
+    -- resource’s most recent release of ownership to the queue family
+    -- specified by the memory barrier’s @srcQueueFamilyIndex@. If
+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', it specifies nothing.
+    acquireUnmodifiedMemory :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ExternalMemoryAcquireUnmodifiedEXT)
+#endif
+deriving instance Show ExternalMemoryAcquireUnmodifiedEXT
+
+instance ToCStruct ExternalMemoryAcquireUnmodifiedEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ExternalMemoryAcquireUnmodifiedEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (acquireUnmodifiedMemory))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct ExternalMemoryAcquireUnmodifiedEXT where
+  peekCStruct p = do
+    acquireUnmodifiedMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ ExternalMemoryAcquireUnmodifiedEXT
+             (bool32ToBool acquireUnmodifiedMemory)
+
+instance Storable ExternalMemoryAcquireUnmodifiedEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ExternalMemoryAcquireUnmodifiedEXT where
+  zero = ExternalMemoryAcquireUnmodifiedEXT
+           zero
+
+
+type EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION"
+pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION = 1
+
+
+type EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME = "VK_EXT_external_memory_acquire_unmodified"
+
+-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME"
+pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME = "VK_EXT_external_memory_acquire_unmodified"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot
@@ -0,0 +1,106 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_external_memory_acquire_unmodified - device extension
+--
+-- == VK_EXT_external_memory_acquire_unmodified
+--
+-- [__Name String__]
+--     @VK_EXT_external_memory_acquire_unmodified@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     454
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--
+-- [__Contact__]
+--
+--     -   Lina Versace
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_external_memory_acquire_unmodified] @versalinyaa%0A*Here describe the issue or question you have about the VK_EXT_external_memory_acquire_unmodified extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_external_memory_acquire_unmodified.adoc VK_EXT_external_memory_acquire_unmodified>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-03-09
+--
+-- [__Contributors__]
+--
+--     -   Lina Versace, Google
+--
+--     -   Chia-I Wu, Google
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Yiwei Zhang, Google
+--
+-- == Description
+--
+-- A memory barrier /may/ have a performance penalty when acquiring
+-- ownership of a subresource range from an external queue family. This
+-- extension provides API that /may/ reduce the performance penalty if
+-- ownership of the subresource range was previously released to the
+-- external queue family and if the resource’s memory has remained
+-- unmodified between the release and acquire operations.
+--
+-- == New Structures
+--
+-- -   Extending 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',
+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2':
+--
+--     -   'ExternalMemoryAcquireUnmodifiedEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME'
+--
+-- -   'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-03-09 (Lina Versace)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'ExternalMemoryAcquireUnmodifiedEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_acquire_unmodified Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified  (ExternalMemoryAcquireUnmodifiedEXT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data ExternalMemoryAcquireUnmodifiedEXT
+
+instance ToCStruct ExternalMemoryAcquireUnmodifiedEXT
+instance Show ExternalMemoryAcquireUnmodifiedEXT
+
+instance FromCStruct ExternalMemoryAcquireUnmodifiedEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fd VK_KHR_external_memory_fd>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --     or
@@ -268,6 +271,9 @@
 --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'
 --     value
 --
+-- -   #VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-parameter#
+--     @pHostPointer@ /must/ be a pointer value
+--
 -- -   #VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter#
 --     @pMemoryHostPointerProperties@ /must/ be a valid pointer to a
 --     'MemoryHostPointerPropertiesEXT' structure
@@ -389,6 +395,9 @@
 --     @handleType@ /must/ be a valid
 --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'
 --     value
+--
+-- -   #VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-parameter#
+--     @pHostPointer@ /must/ be a pointer value
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs
--- a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs
+++ b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Bill Licea-Kane
@@ -39,7 +42,7 @@
 --
 --     -   Graeme Leese, Broadcom
 --
---     -   Jan-Herald Fredericksen, ARM
+--     -   Jan-Harald Fredriksen, ARM
 --
 --     -   Jeff Leger, Qualcomm Technologies, Inc.
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Bill Licea-Kane
@@ -39,7 +42,7 @@
 --
 --     -   Graeme Leese, Broadcom
 --
---     -   Jan-Herald Fredericksen, ARM
+--     -   Jan-Harald Fredriksen, ARM
 --
 --     -   Jeff Leger, Qualcomm Technologies, Inc.
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs
--- a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs
@@ -0,0 +1,497 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_frame_boundary - device extension
+--
+-- == VK_EXT_frame_boundary
+--
+-- [__Name String__]
+--     @VK_EXT_frame_boundary@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     376
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   James Fitzpatrick
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_frame_boundary] @jamesfitzpatrick%0A*Here describe the issue or question you have about the VK_EXT_frame_boundary extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_frame_boundary.adoc VK_EXT_frame_boundary>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-06-14
+--
+-- [__Contributors__]
+--
+--     -   James Fitzpatrick, Imagination Technologies
+--
+--     -   Hugues Evrard, Google
+--
+--     -   Melih Yasin Yalcin, Google
+--
+--     -   Andrew Garrard, Imagination Technologies
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Vassili Nikolaev, NVIDIA
+--
+--     -   Ting Wei, Huawei
+--
+-- == Description
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundary VK_EXT_frame_boundary>
+-- is a device extension that helps __tools__ (such as debuggers) to group
+-- queue submissions per frames in non-trivial scenarios, typically when
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' is not a relevant
+-- frame boundary delimiter.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceFrameBoundaryFeaturesEXT'
+--
+-- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2',
+--     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',
+--     'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo':
+--
+--     -   'FrameBoundaryEXT'
+--
+-- == New Enums
+--
+-- -   'FrameBoundaryFlagBitsEXT'
+--
+-- == New Bitmasks
+--
+-- -   'FrameBoundaryFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_FRAME_BOUNDARY_EXTENSION_NAME'
+--
+-- -   'EXT_FRAME_BOUNDARY_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAME_BOUNDARY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 0, 2022-01-14 (Hugues Evard)
+--
+--     -   Initial proposal
+--
+-- -   Revision 1, 2023-06-14 (James Fitzpatrick)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- 'FrameBoundaryEXT', 'FrameBoundaryFlagBitsEXT', 'FrameBoundaryFlagsEXT',
+-- 'PhysicalDeviceFrameBoundaryFeaturesEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_frame_boundary Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_frame_boundary  ( FrameBoundaryEXT(..)
+                                                , PhysicalDeviceFrameBoundaryFeaturesEXT(..)
+                                                , FrameBoundaryFlagsEXT
+                                                , FrameBoundaryFlagBitsEXT( FRAME_BOUNDARY_FRAME_END_BIT_EXT
+                                                                          , ..
+                                                                          )
+                                                , EXT_FRAME_BOUNDARY_SPEC_VERSION
+                                                , pattern EXT_FRAME_BOUNDARY_SPEC_VERSION
+                                                , EXT_FRAME_BOUNDARY_EXTENSION_NAME
+                                                , pattern EXT_FRAME_BOUNDARY_EXTENSION_NAME
+                                                ) where
+
+import Data.Bits (Bits)
+import Data.Bits (FiniteBits)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Control.Monad (unless)
+import Foreign.Marshal.Alloc (allocaBytes)
+import GHC.IO (throwIO)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showString)
+import Numeric (showHex)
+import Data.Coerce (coerce)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+import Data.String (IsString)
+import Data.Typeable (Typeable)
+import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
+import Foreign.C.Types (CSize(CSize))
+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 (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Word (Word64)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Handles (Buffer)
+import Vulkan.Core10.FundamentalTypes (Flags)
+import Vulkan.Core10.Handles (Image)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAME_BOUNDARY_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT))
+-- | VkFrameBoundaryEXT - Add frame boundary information to queue submissions
+--
+-- = Description
+--
+-- The application /can/ associate frame boundary information to a queue
+-- submission call by adding a 'FrameBoundaryEXT' structure to the @pNext@
+-- chain of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission>,
+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', or
+-- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo'.
+--
+-- The frame identifier is used to associate one or more queue submission
+-- to a frame, it is thus meant to be unique within a frame lifetime, i.e.
+-- it is possible (but not recommended) to reuse frame identifiers, as long
+-- as any two frames with any chance of having overlapping queue
+-- submissions (as in the example above) use two different frame
+-- identifiers.
+--
+-- Note
+--
+-- Since the concept of frame is application-dependent, there is no way to
+-- validate the use of frame identifier. It is good practice to use a
+-- monotonically increasing counter as the frame identifier and not reuse
+-- identifiers between frames.
+--
+-- The @pImages@ and @pBuffers@ arrays contain a list of images and buffers
+-- which store the \"end result\" of the frame. As the concept of frame is
+-- application-dependent, not all frames /may/ produce their results in
+-- images or buffers, yet this is a sufficiently common case to be handled
+-- by 'FrameBoundaryEXT'. Note that no extra information, such as image
+-- layout is being provided, since the images are meant to be used by tools
+-- which would already be tracking this required information. Having the
+-- possibility of passing a list of end-result images makes
+-- 'FrameBoundaryEXT' as expressive as
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', which is often the
+-- default frame boundary delimiter.
+--
+-- The application /can/ also associate arbitrary extra information via tag
+-- data using @tagName@, @tagSize@ and @pTag@. This extra information is
+-- typically tool-specific.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkFrameBoundaryEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAME_BOUNDARY_EXT'
+--
+-- -   #VUID-VkFrameBoundaryEXT-flags-parameter# @flags@ /must/ be a valid
+--     combination of 'FrameBoundaryFlagBitsEXT' values
+--
+-- -   #VUID-VkFrameBoundaryEXT-pImages-parameter# If @imageCount@ is not
+--     @0@, and @pImages@ is not @NULL@, @pImages@ /must/ be a valid
+--     pointer to an array of @imageCount@ valid
+--     'Vulkan.Core10.Handles.Image' handles
+--
+-- -   #VUID-VkFrameBoundaryEXT-pBuffers-parameter# If @bufferCount@ is not
+--     @0@, and @pBuffers@ is not @NULL@, @pBuffers@ /must/ be a valid
+--     pointer to an array of @bufferCount@ valid
+--     'Vulkan.Core10.Handles.Buffer' handles
+--
+-- -   #VUID-VkFrameBoundaryEXT-pTag-parameter# If @tagSize@ is not @0@,
+--     and @pTag@ is not @NULL@, @pTag@ /must/ be a valid pointer to an
+--     array of @tagSize@ bytes
+--
+-- -   #VUID-VkFrameBoundaryEXT-commonparent# Both of the elements of
+--     @pBuffers@, and the elements of @pImages@ that are valid handles of
+--     non-ignored parameters /must/ have been created, allocated, or
+--     retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundary VK_EXT_frame_boundary>,
+-- 'Vulkan.Core10.Handles.Buffer', 'FrameBoundaryFlagsEXT',
+-- 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data FrameBoundaryEXT = FrameBoundaryEXT
+  { -- | @flags@ is a bitmask of 'FrameBoundaryFlagBitsEXT' that can flag the
+    -- last submission of a frame identifier.
+    flags :: FrameBoundaryFlagsEXT
+  , -- | @frameID@ is the frame identifier.
+    frameID :: Word64
+  , -- | @imageCount@ is the number of images that store frame results.
+    imageCount :: Word32
+  , -- | @pImages@ is a pointer to an array of VkImage objects with imageCount
+    -- entries.
+    images :: Vector Image
+  , -- | @bufferCount@ is the number of buffers the store the frame results.
+    bufferCount :: Word32
+  , -- | @pBuffers@ is a pointer to an array of VkBuffer objects with bufferCount
+    -- entries.
+    buffers :: Vector Buffer
+  , -- | @tagName@ is a numerical identifier for tag data.
+    tagName :: Word64
+  , -- | @tagSize@ is the number of bytes of tag data.
+    tagSize :: Word64
+  , -- | @pTag@ is a pointer to an array of @tagSize@ bytes containing tag data.
+    tag :: Ptr ()
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (FrameBoundaryEXT)
+#endif
+deriving instance Show FrameBoundaryEXT
+
+instance ToCStruct FrameBoundaryEXT where
+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p FrameBoundaryEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAME_BOUNDARY_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr FrameBoundaryFlagsEXT)) (flags)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word64)) (frameID)
+    let pImagesLength = Data.Vector.length $ (images)
+    imageCount'' <- lift $ if (imageCount) == 0
+      then pure $ fromIntegral pImagesLength
+      else do
+        unless (fromIntegral pImagesLength == (imageCount) || pImagesLength == 0) $
+          throwIO $ IOError Nothing InvalidArgument "" "pImages must be empty or have 'imageCount' elements" Nothing Nothing
+        pure (imageCount)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (imageCount'')
+    pImages'' <- if Data.Vector.null (images)
+      then pure nullPtr
+      else do
+        pPImages <- ContT $ allocaBytes @Image (((Data.Vector.length (images))) * 8)
+        lift $ Data.Vector.imapM_ (\i e -> poke (pPImages `plusPtr` (8 * (i)) :: Ptr Image) (e)) ((images))
+        pure $ pPImages
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Image))) pImages''
+    let pBuffersLength = Data.Vector.length $ (buffers)
+    bufferCount'' <- lift $ if (bufferCount) == 0
+      then pure $ fromIntegral pBuffersLength
+      else do
+        unless (fromIntegral pBuffersLength == (bufferCount) || pBuffersLength == 0) $
+          throwIO $ IOError Nothing InvalidArgument "" "pBuffers must be empty or have 'bufferCount' elements" Nothing Nothing
+        pure (bufferCount)
+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (bufferCount'')
+    pBuffers'' <- if Data.Vector.null (buffers)
+      then pure nullPtr
+      else do
+        pPBuffers <- ContT $ allocaBytes @Buffer (((Data.Vector.length (buffers))) * 8)
+        lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) ((buffers))
+        pure $ pPBuffers
+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr Buffer))) pBuffers''
+    lift $ poke ((p `plusPtr` 64 :: Ptr Word64)) (tagName)
+    lift $ poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (tagSize))
+    lift $ poke ((p `plusPtr` 80 :: Ptr (Ptr ()))) (tag)
+    lift $ f
+  cStructSize = 88
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAME_BOUNDARY_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)
+    f
+
+instance FromCStruct FrameBoundaryEXT where
+  peekCStruct p = do
+    flags <- peek @FrameBoundaryFlagsEXT ((p `plusPtr` 16 :: Ptr FrameBoundaryFlagsEXT))
+    frameID <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
+    imageCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    pImages <- peek @(Ptr Image) ((p `plusPtr` 40 :: Ptr (Ptr Image)))
+    let pImagesLength = if pImages == nullPtr then 0 else (fromIntegral imageCount)
+    pImages' <- generateM pImagesLength (\i -> peek @Image ((pImages `advancePtrBytes` (8 * (i)) :: Ptr Image)))
+    bufferCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
+    pBuffers <- peek @(Ptr Buffer) ((p `plusPtr` 56 :: Ptr (Ptr Buffer)))
+    let pBuffersLength = if pBuffers == nullPtr then 0 else (fromIntegral bufferCount)
+    pBuffers' <- generateM pBuffersLength (\i -> peek @Buffer ((pBuffers `advancePtrBytes` (8 * (i)) :: Ptr Buffer)))
+    tagName <- peek @Word64 ((p `plusPtr` 64 :: Ptr Word64))
+    tagSize <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))
+    pTag <- peek @(Ptr ()) ((p `plusPtr` 80 :: Ptr (Ptr ())))
+    pure $ FrameBoundaryEXT
+             flags
+             frameID
+             imageCount
+             pImages'
+             bufferCount
+             pBuffers'
+             tagName
+             (coerce @CSize @Word64 tagSize)
+             pTag
+
+instance Zero FrameBoundaryEXT where
+  zero = FrameBoundaryEXT
+           zero
+           zero
+           zero
+           mempty
+           zero
+           mempty
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceFrameBoundaryFeaturesEXT - Structure describing the
+-- frame boundary features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceFrameBoundaryFeaturesEXT' 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. 'PhysicalDeviceFrameBoundaryFeaturesEXT' /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_EXT_frame_boundary VK_EXT_frame_boundary>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceFrameBoundaryFeaturesEXT = PhysicalDeviceFrameBoundaryFeaturesEXT
+  { -- | #features-frameBoundary# @frameBoundary@ indicates whether the
+    -- implementation supports frame boundary information.
+    frameBoundary :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceFrameBoundaryFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceFrameBoundaryFeaturesEXT
+
+instance ToCStruct PhysicalDeviceFrameBoundaryFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceFrameBoundaryFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (frameBoundary))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceFrameBoundaryFeaturesEXT where
+  peekCStruct p = do
+    frameBoundary <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceFrameBoundaryFeaturesEXT
+             (bool32ToBool frameBoundary)
+
+instance Storable PhysicalDeviceFrameBoundaryFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceFrameBoundaryFeaturesEXT where
+  zero = PhysicalDeviceFrameBoundaryFeaturesEXT
+           zero
+
+
+type FrameBoundaryFlagsEXT = FrameBoundaryFlagBitsEXT
+
+-- | VkFrameBoundaryFlagBitsEXT - Bitmask specifying whether a queue
+-- submission is the last one for a given frame
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundary VK_EXT_frame_boundary>,
+-- 'FrameBoundaryFlagsEXT'
+newtype FrameBoundaryFlagBitsEXT = FrameBoundaryFlagBitsEXT Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'FRAME_BOUNDARY_FRAME_END_BIT_EXT' specifies that this queue submission
+-- is the last one for this frame, i.e. once this queue submission has
+-- terminated, then the work for this frame is completed.
+pattern FRAME_BOUNDARY_FRAME_END_BIT_EXT = FrameBoundaryFlagBitsEXT 0x00000001
+
+conNameFrameBoundaryFlagBitsEXT :: String
+conNameFrameBoundaryFlagBitsEXT = "FrameBoundaryFlagBitsEXT"
+
+enumPrefixFrameBoundaryFlagBitsEXT :: String
+enumPrefixFrameBoundaryFlagBitsEXT = "FRAME_BOUNDARY_FRAME_END_BIT_EXT"
+
+showTableFrameBoundaryFlagBitsEXT :: [(FrameBoundaryFlagBitsEXT, String)]
+showTableFrameBoundaryFlagBitsEXT = [(FRAME_BOUNDARY_FRAME_END_BIT_EXT, "")]
+
+instance Show FrameBoundaryFlagBitsEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixFrameBoundaryFlagBitsEXT
+      showTableFrameBoundaryFlagBitsEXT
+      conNameFrameBoundaryFlagBitsEXT
+      (\(FrameBoundaryFlagBitsEXT x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read FrameBoundaryFlagBitsEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixFrameBoundaryFlagBitsEXT
+      showTableFrameBoundaryFlagBitsEXT
+      conNameFrameBoundaryFlagBitsEXT
+      FrameBoundaryFlagBitsEXT
+
+type EXT_FRAME_BOUNDARY_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_FRAME_BOUNDARY_SPEC_VERSION"
+pattern EXT_FRAME_BOUNDARY_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_FRAME_BOUNDARY_SPEC_VERSION = 1
+
+
+type EXT_FRAME_BOUNDARY_EXTENSION_NAME = "VK_EXT_frame_boundary"
+
+-- No documentation found for TopLevel "VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME"
+pattern EXT_FRAME_BOUNDARY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_FRAME_BOUNDARY_EXTENSION_NAME = "VK_EXT_frame_boundary"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot
@@ -0,0 +1,139 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_frame_boundary - device extension
+--
+-- == VK_EXT_frame_boundary
+--
+-- [__Name String__]
+--     @VK_EXT_frame_boundary@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     376
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   James Fitzpatrick
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_frame_boundary] @jamesfitzpatrick%0A*Here describe the issue or question you have about the VK_EXT_frame_boundary extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_frame_boundary.adoc VK_EXT_frame_boundary>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-06-14
+--
+-- [__Contributors__]
+--
+--     -   James Fitzpatrick, Imagination Technologies
+--
+--     -   Hugues Evrard, Google
+--
+--     -   Melih Yasin Yalcin, Google
+--
+--     -   Andrew Garrard, Imagination Technologies
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Vassili Nikolaev, NVIDIA
+--
+--     -   Ting Wei, Huawei
+--
+-- == Description
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundary VK_EXT_frame_boundary>
+-- is a device extension that helps __tools__ (such as debuggers) to group
+-- queue submissions per frames in non-trivial scenarios, typically when
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' is not a relevant
+-- frame boundary delimiter.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceFrameBoundaryFeaturesEXT'
+--
+-- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2',
+--     'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',
+--     'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo':
+--
+--     -   'FrameBoundaryEXT'
+--
+-- == New Enums
+--
+-- -   'FrameBoundaryFlagBitsEXT'
+--
+-- == New Bitmasks
+--
+-- -   'FrameBoundaryFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_FRAME_BOUNDARY_EXTENSION_NAME'
+--
+-- -   'EXT_FRAME_BOUNDARY_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAME_BOUNDARY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT'
+--
+-- == Version History
+--
+-- -   Revision 0, 2022-01-14 (Hugues Evard)
+--
+--     -   Initial proposal
+--
+-- -   Revision 1, 2023-06-14 (James Fitzpatrick)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- 'FrameBoundaryEXT', 'FrameBoundaryFlagBitsEXT', 'FrameBoundaryFlagsEXT',
+-- 'PhysicalDeviceFrameBoundaryFeaturesEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_frame_boundary Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_frame_boundary  ( FrameBoundaryEXT
+                                                , PhysicalDeviceFrameBoundaryFeaturesEXT
+                                                ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data FrameBoundaryEXT
+
+instance ToCStruct FrameBoundaryEXT
+instance Show FrameBoundaryEXT
+
+instance FromCStruct FrameBoundaryEXT
+
+
+data PhysicalDeviceFrameBoundaryFeaturesEXT
+
+instance ToCStruct PhysicalDeviceFrameBoundaryFeaturesEXT
+instance Show PhysicalDeviceFrameBoundaryFeaturesEXT
+
+instance FromCStruct PhysicalDeviceFrameBoundaryFeaturesEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
--- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
+++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_global_priority.hs b/src/Vulkan/Extensions/VK_EXT_global_priority.hs
--- a/src/Vulkan/Extensions/VK_EXT_global_priority.hs
+++ b/src/Vulkan/Extensions/VK_EXT_global_priority.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to @VK_KHR_global_priority@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs b/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs
--- a/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs
+++ b/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_KHR_global_priority@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs
--- a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs
+++ b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
--- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
+++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --
@@ -55,7 +58,7 @@
 -- metadata also includes the @maxContentLightLevel@ and
 -- @maxFrameAverageLightLevel@ as defined by CTA 861.3.
 --
--- While the general purpose of the metadata is to assist in the
+-- While the intended purpose of the metadata is to assist in the
 -- transformation between different color volumes of different displays and
 -- help achieve better color reproduction, it is not in the scope of this
 -- extension to define how exactly the metadata should be used in such a
diff --git a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --
@@ -55,7 +58,7 @@
 -- metadata also includes the @maxContentLightLevel@ and
 -- @maxFrameAverageLightLevel@ as defined by CTA 861.3.
 --
--- While the general purpose of the metadata is to assist in the
+-- While the intended purpose of the metadata is to assist in the
 -- transformation between different color volumes of different displays and
 -- help achieve better color reproduction, it is not in the scope of this
 -- extension to define how exactly the metadata should be used in such a
diff --git a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs
--- a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs
+++ b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs
@@ -0,0 +1,2645 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_host_image_copy - device extension
+--
+-- == VK_EXT_host_image_copy
+--
+-- [__Name String__]
+--     @VK_EXT_host_image_copy@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     271
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+--
+-- [__Contact__]
+--
+--     -   Shahbaz Youssefi
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_host_image_copy] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_host_image_copy extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_host_image_copy.adoc VK_EXT_host_image_copy>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-04-26
+--
+-- [__Contributors__]
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Faith Ekstrand, Collabora
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   James Fitzpatrick, Imagination
+--
+--     -   Daniel Story, Nintendo
+--
+-- == Description
+--
+-- This extension allows applications to copy data between host memory and
+-- images on the host processor, without staging the data through a
+-- GPU-accessible buffer. This removes the need to allocate and manage the
+-- buffer and its associated memory. On some architectures it may also
+-- eliminate an extra copy operation. This extension additionally allows
+-- applications to copy data between images on the host.
+--
+-- To support initializing a new image in preparation for a host copy, it
+-- is now possible to transition a new image to
+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or other
+-- host-copyable layouts via 'transitionImageLayoutEXT'. Additionally, it
+-- is possible to perform copies that preserve the swizzling layout of the
+-- image by using the 'HOST_IMAGE_COPY_MEMCPY_EXT' flag. In that case, the
+-- memory size needed for copies to or from a buffer can be retrieved by
+-- chaining 'SubresourceHostMemcpySizeEXT' to @pLayout@ in
+-- 'getImageSubresourceLayout2EXT'.
+--
+-- == New Commands
+--
+-- -   'copyImageToImageEXT'
+--
+-- -   'copyImageToMemoryEXT'
+--
+-- -   'copyMemoryToImageEXT'
+--
+-- -   'getImageSubresourceLayout2EXT'
+--
+-- -   'transitionImageLayoutEXT'
+--
+-- == New Structures
+--
+-- -   'CopyImageToImageInfoEXT'
+--
+-- -   'CopyImageToMemoryInfoEXT'
+--
+-- -   'CopyMemoryToImageInfoEXT'
+--
+-- -   'HostImageLayoutTransitionInfoEXT'
+--
+-- -   'ImageSubresource2EXT'
+--
+-- -   'ImageToMemoryCopyEXT'
+--
+-- -   'MemoryToImageCopyEXT'
+--
+-- -   'SubresourceLayout2EXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2':
+--
+--     -   'HostImageCopyDevicePerformanceQueryEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceHostImageCopyFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceHostImageCopyPropertiesEXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR':
+--
+--     -   'SubresourceHostMemcpySizeEXT'
+--
+-- == New Enums
+--
+-- -   'HostImageCopyFlagBitsEXT'
+--
+-- == New Bitmasks
+--
+-- -   'HostImageCopyFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_HOST_IMAGE_COPY_EXTENSION_NAME'
+--
+-- -   'EXT_HOST_IMAGE_COPY_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':
+--
+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT'
+--
+-- == Issues
+--
+-- 1) When uploading data to an image, the data is usually loaded from
+-- disk. Why not have the application load the data directly into a
+-- 'Vulkan.Core10.Handles.DeviceMemory' bound to a buffer (instead of host
+-- memory), and use
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage'? The same
+-- could be done when downloading data from an image.
+--
+-- __RESOLVED__: This may not always be possible. Complicated Vulkan
+-- applications such as game engines often have decoupled subsystems for
+-- streaming data and rendering. It may be unreasonable to require the
+-- streaming subsystem to coordinate with the rendering subsystem to
+-- allocate memory on its behalf, especially as Vulkan may not be the only
+-- API supported by the engine. In emulation layers, the image data is
+-- necessarily provided by the application in host memory, so an
+-- optimization as suggested is not possible. Most importantly, the device
+-- memory may not be mappable by an application, but still accessible to
+-- the driver.
+--
+-- 2) Are @optimalBufferCopyOffsetAlignment@ and
+-- @optimalBufferCopyRowPitchAlignment@ applicable to host memory as well
+-- with the functions introduced by this extension? Or should there be new
+-- limits?
+--
+-- __RESOLVED__: No alignment requirements for the host memory pointer.
+--
+-- 3) Should there be granularity requirements for image offsets and
+-- extents?
+--
+-- __RESOLVED__: No granularity requirements, i.e. a granularity of 1 pixel
+-- (for non-compressed formats) and 1 texel block (for compressed formats)
+-- is assumed.
+--
+-- 4) How should the application deal with layout transitions before or
+-- after copying to or from images?
+--
+-- __RESOLVED__: An existing issue with linear images is that when
+-- emulating other APIs, it is impossible to know when to transition them
+-- as they are written to by the host and then used bindlessly. The copy
+-- operations in this extension are affected by the same limitation. A new
+-- command is thus introduced by this extension to address this problem by
+-- allowing the host to perform an image layout transition between a
+-- handful of layouts.
+--
+-- == Version History
+--
+-- -   Revision 0, 2021-01-20 (Faith Ekstrand)
+--
+--     -   Initial idea and xml
+--
+-- -   Revision 1, 2023-04-26 (Shahbaz Youssefi)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'CopyImageToImageInfoEXT', 'CopyImageToMemoryInfoEXT',
+-- 'CopyMemoryToImageInfoEXT', 'HostImageCopyDevicePerformanceQueryEXT',
+-- 'HostImageCopyFlagBitsEXT', 'HostImageCopyFlagsEXT',
+-- 'HostImageLayoutTransitionInfoEXT', 'ImageSubresource2EXT',
+-- 'ImageToMemoryCopyEXT', 'MemoryToImageCopyEXT',
+-- 'PhysicalDeviceHostImageCopyFeaturesEXT',
+-- 'PhysicalDeviceHostImageCopyPropertiesEXT',
+-- 'SubresourceHostMemcpySizeEXT', 'SubresourceLayout2EXT',
+-- 'copyImageToImageEXT', 'copyImageToMemoryEXT', 'copyMemoryToImageEXT',
+-- 'getImageSubresourceLayout2EXT', 'transitionImageLayoutEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_host_image_copy Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_host_image_copy  ( copyMemoryToImageEXT
+                                                 , copyImageToMemoryEXT
+                                                 , copyImageToImageEXT
+                                                 , transitionImageLayoutEXT
+                                                 , getImageSubresourceLayout2EXT
+                                                 , PhysicalDeviceHostImageCopyFeaturesEXT(..)
+                                                 , PhysicalDeviceHostImageCopyPropertiesEXT(..)
+                                                 , MemoryToImageCopyEXT(..)
+                                                 , ImageToMemoryCopyEXT(..)
+                                                 , CopyMemoryToImageInfoEXT(..)
+                                                 , CopyImageToMemoryInfoEXT(..)
+                                                 , CopyImageToImageInfoEXT(..)
+                                                 , HostImageLayoutTransitionInfoEXT(..)
+                                                 , SubresourceHostMemcpySizeEXT(..)
+                                                 , HostImageCopyDevicePerformanceQueryEXT(..)
+                                                 , HostImageCopyFlagsEXT
+                                                 , HostImageCopyFlagBitsEXT( HOST_IMAGE_COPY_MEMCPY_EXT
+                                                                           , ..
+                                                                           )
+                                                 , ImageSubresource2EXT
+                                                 , SubresourceLayout2EXT
+                                                 , EXT_HOST_IMAGE_COPY_SPEC_VERSION
+                                                 , pattern EXT_HOST_IMAGE_COPY_SPEC_VERSION
+                                                 , EXT_HOST_IMAGE_COPY_EXTENSION_NAME
+                                                 , pattern EXT_HOST_IMAGE_COPY_EXTENSION_NAME
+                                                 , ImageSubresource2KHR(..)
+                                                 , SubresourceLayout2KHR(..)
+                                                 , getImageSubresourceLayout2KHR
+                                                 ) where
+
+import Data.Bits (Bits)
+import Data.Bits (FiniteBits)
+import Vulkan.CStruct.Utils (FixedArray)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Foreign.Marshal.Alloc (allocaBytes)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showString)
+import Numeric (showHex)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+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 GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Word (Word8)
+import Data.ByteString (ByteString)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Extensions.VK_KHR_maintenance5 (getImageSubresourceLayout2KHR)
+import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)
+import Vulkan.CStruct.Utils (pokeFixedLengthByteString)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkCopyImageToImageEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCopyImageToMemoryEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCopyMemoryToImageEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkTransitionImageLayoutEXT))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.Core10.FundamentalTypes (Extent3D)
+import Vulkan.Core10.FundamentalTypes (Flags)
+import Vulkan.Core10.Handles (Image)
+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2)
+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
+import Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR)
+import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
+import Vulkan.Core10.ImageView (ImageSubresourceRange)
+import Vulkan.Core10.FundamentalTypes (Offset3D)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR)
+import Vulkan.Core10.APIConstants (UUID_SIZE)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Extensions.VK_KHR_maintenance5 (getImageSubresourceLayout2KHR)
+import Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR(..))
+import Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCopyMemoryToImageEXT
+  :: FunPtr (Ptr Device_T -> Ptr CopyMemoryToImageInfoEXT -> IO Result) -> Ptr Device_T -> Ptr CopyMemoryToImageInfoEXT -> IO Result
+
+-- | vkCopyMemoryToImageEXT - Copy data from host memory into an image
+--
+-- = Description
+--
+-- This command is functionally similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2',
+-- except it is executed on the host and reads from host memory instead of
+-- a buffer.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostImageCopy hostImageCopy>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCopyMemoryToImageEXT-device-parameter# @device@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter#
+--     @pCopyMemoryToImageInfo@ /must/ be a valid pointer to a valid
+--     'CopyMemoryToImageInfoEXT' structure
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'CopyMemoryToImageInfoEXT', 'Vulkan.Core10.Handles.Device'
+copyMemoryToImageEXT :: forall io
+                      . (MonadIO io)
+                     => -- | @device@ is the device which owns @pCopyMemoryToImageInfo->dstImage@.
+                        Device
+                     -> -- | @pCopyMemoryToImageInfo@ is a pointer to a 'CopyMemoryToImageInfoEXT'
+                        -- structure describing the copy parameters.
+                        CopyMemoryToImageInfoEXT
+                     -> io ()
+copyMemoryToImageEXT device copyMemoryToImageInfo = liftIO . evalContT $ do
+  let vkCopyMemoryToImageEXTPtr = pVkCopyMemoryToImageEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCopyMemoryToImageEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMemoryToImageEXT is null" Nothing Nothing
+  let vkCopyMemoryToImageEXT' = mkVkCopyMemoryToImageEXT vkCopyMemoryToImageEXTPtr
+  pCopyMemoryToImageInfo <- ContT $ withCStruct (copyMemoryToImageInfo)
+  r <- lift $ traceAroundEvent "vkCopyMemoryToImageEXT" (vkCopyMemoryToImageEXT'
+                                                           (deviceHandle (device))
+                                                           pCopyMemoryToImageInfo)
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCopyImageToMemoryEXT
+  :: FunPtr (Ptr Device_T -> Ptr CopyImageToMemoryInfoEXT -> IO Result) -> Ptr Device_T -> Ptr CopyImageToMemoryInfoEXT -> IO Result
+
+-- | vkCopyImageToMemoryEXT - Copy image data into host memory
+--
+-- = Description
+--
+-- This command is functionally similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',
+-- except it is executed on the host and writes to host memory instead of a
+-- buffer.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCopyImageToMemoryEXT-hostImageCopy-09063# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostImageCopy hostImageCopy>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCopyImageToMemoryEXT-device-parameter# @device@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameter#
+--     @pCopyImageToMemoryInfo@ /must/ be a valid pointer to a valid
+--     'CopyImageToMemoryInfoEXT' structure
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'CopyImageToMemoryInfoEXT', 'Vulkan.Core10.Handles.Device'
+copyImageToMemoryEXT :: forall io
+                      . (MonadIO io)
+                     => -- | @device@ is the device which owns @pCopyImageToMemoryInfo->srcImage@.
+                        Device
+                     -> -- | @pCopyImageToMemoryInfo@ is a pointer to a 'CopyImageToMemoryInfoEXT'
+                        -- structure describing the copy parameters.
+                        CopyImageToMemoryInfoEXT
+                     -> io ()
+copyImageToMemoryEXT device copyImageToMemoryInfo = liftIO . evalContT $ do
+  let vkCopyImageToMemoryEXTPtr = pVkCopyImageToMemoryEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCopyImageToMemoryEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyImageToMemoryEXT is null" Nothing Nothing
+  let vkCopyImageToMemoryEXT' = mkVkCopyImageToMemoryEXT vkCopyImageToMemoryEXTPtr
+  pCopyImageToMemoryInfo <- ContT $ withCStruct (copyImageToMemoryInfo)
+  r <- lift $ traceAroundEvent "vkCopyImageToMemoryEXT" (vkCopyImageToMemoryEXT'
+                                                           (deviceHandle (device))
+                                                           pCopyImageToMemoryInfo)
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCopyImageToImageEXT
+  :: FunPtr (Ptr Device_T -> Ptr CopyImageToImageInfoEXT -> IO Result) -> Ptr Device_T -> Ptr CopyImageToImageInfoEXT -> IO Result
+
+-- | vkCopyImageToImageEXT - Copy image data using the host
+--
+-- = Description
+--
+-- This command is functionally similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImage2',
+-- except it is executed on the host.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCopyImageToImageEXT-hostImageCopy-09068# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostImageCopy hostImageCopy>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCopyImageToImageEXT-device-parameter# @device@ /must/ be a
+--     valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameter#
+--     @pCopyImageToImageInfo@ /must/ be a valid pointer to a valid
+--     'CopyImageToImageInfoEXT' structure
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'CopyImageToImageInfoEXT', 'Vulkan.Core10.Handles.Device'
+copyImageToImageEXT :: forall io
+                     . (MonadIO io)
+                    => -- | @device@ is the device which owns @pCopyImageToMemoryInfo->srcImage@.
+                       Device
+                    -> -- | @pCopyImageToImageInfo@ is a pointer to a 'CopyImageToImageInfoEXT'
+                       -- structure describing the copy parameters.
+                       CopyImageToImageInfoEXT
+                    -> io ()
+copyImageToImageEXT device copyImageToImageInfo = liftIO . evalContT $ do
+  let vkCopyImageToImageEXTPtr = pVkCopyImageToImageEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCopyImageToImageEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyImageToImageEXT is null" Nothing Nothing
+  let vkCopyImageToImageEXT' = mkVkCopyImageToImageEXT vkCopyImageToImageEXTPtr
+  pCopyImageToImageInfo <- ContT $ withCStruct (copyImageToImageInfo)
+  r <- lift $ traceAroundEvent "vkCopyImageToImageEXT" (vkCopyImageToImageEXT'
+                                                          (deviceHandle (device))
+                                                          pCopyImageToImageInfo)
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkTransitionImageLayoutEXT
+  :: FunPtr (Ptr Device_T -> Word32 -> Ptr HostImageLayoutTransitionInfoEXT -> IO Result) -> Ptr Device_T -> Word32 -> Ptr HostImageLayoutTransitionInfoEXT -> IO Result
+
+-- | vkTransitionImageLayoutEXT - Perform an image layout transition on the
+-- host
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'Vulkan.Core10.Handles.Device', 'HostImageLayoutTransitionInfoEXT'
+transitionImageLayoutEXT :: forall io
+                          . (MonadIO io)
+                         => -- | @device@ is the device which owns @pTransitions@[i].@image@.
+                            --
+                            -- #VUID-vkTransitionImageLayoutEXT-device-parameter# @device@ /must/ be a
+                            -- valid 'Vulkan.Core10.Handles.Device' handle
+                            Device
+                         -> -- | @pTransitions@ is a pointer to an array of
+                            -- 'HostImageLayoutTransitionInfoEXT' structures specifying the image and
+                            -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views subresource ranges>
+                            -- within them to transition.
+                            --
+                            -- #VUID-vkTransitionImageLayoutEXT-pTransitions-parameter# @pTransitions@
+                            -- /must/ be a valid pointer to an array of @transitionCount@ valid
+                            -- 'HostImageLayoutTransitionInfoEXT' structures
+                            ("transitions" ::: Vector HostImageLayoutTransitionInfoEXT)
+                         -> io ()
+transitionImageLayoutEXT device transitions = liftIO . evalContT $ do
+  let vkTransitionImageLayoutEXTPtr = pVkTransitionImageLayoutEXT (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkTransitionImageLayoutEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkTransitionImageLayoutEXT is null" Nothing Nothing
+  let vkTransitionImageLayoutEXT' = mkVkTransitionImageLayoutEXT vkTransitionImageLayoutEXTPtr
+  pPTransitions <- ContT $ allocaBytes @HostImageLayoutTransitionInfoEXT ((Data.Vector.length (transitions)) * 56)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPTransitions `plusPtr` (56 * (i)) :: Ptr HostImageLayoutTransitionInfoEXT) (e)) (transitions)
+  r <- lift $ traceAroundEvent "vkTransitionImageLayoutEXT" (vkTransitionImageLayoutEXT'
+                                                               (deviceHandle (device))
+                                                               ((fromIntegral (Data.Vector.length $ (transitions)) :: Word32))
+                                                               (pPTransitions))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+
+
+-- No documentation found for TopLevel "vkGetImageSubresourceLayout2EXT"
+getImageSubresourceLayout2EXT = getImageSubresourceLayout2KHR
+
+
+-- | VkPhysicalDeviceHostImageCopyFeaturesEXT - Structure indicating support
+-- for copies to or from images from host memory
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceHostImageCopyFeaturesEXT' 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. 'PhysicalDeviceHostImageCopyFeaturesEXT' /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_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceHostImageCopyFeaturesEXT = PhysicalDeviceHostImageCopyFeaturesEXT
+  { -- | #features-hostImageCopy# @hostImageCopy@ indicates that the
+    -- implementation supports copying from host memory to images using the
+    -- 'copyMemoryToImageEXT' command, copying from images to host memory using
+    -- the 'copyImageToMemoryEXT' command, and copying between images using the
+    -- 'copyImageToImageEXT' command.
+    hostImageCopy :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceHostImageCopyFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceHostImageCopyFeaturesEXT
+
+instance ToCStruct PhysicalDeviceHostImageCopyFeaturesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceHostImageCopyFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (hostImageCopy))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceHostImageCopyFeaturesEXT where
+  peekCStruct p = do
+    hostImageCopy <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceHostImageCopyFeaturesEXT
+             (bool32ToBool hostImageCopy)
+
+instance Storable PhysicalDeviceHostImageCopyFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceHostImageCopyFeaturesEXT where
+  zero = PhysicalDeviceHostImageCopyFeaturesEXT
+           zero
+
+
+-- | VkPhysicalDeviceHostImageCopyPropertiesEXT - Structure enumerating image
+-- layouts supported by an implementation for host memory copies
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceHostImageCopyPropertiesEXT' 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.
+--
+-- If @pCopyDstLayouts@ is @NULL@, then the number of image layouts that
+-- are supported in 'CopyMemoryToImageInfoEXT'::@dstImageLayout@ and
+-- 'CopyImageToImageInfoEXT'::@dstImageLayout@ is returned in
+-- @copyDstLayoutCount@. Otherwise, @copyDstLayoutCount@ /must/ be set by
+-- the user to the number of elements in the @pCopyDstLayouts@ array, and
+-- on return the variable is overwritten with the number of values actually
+-- written to @pCopyDstLayouts@. If the value of @copyDstLayoutCount@ is
+-- less than the number of image layouts that are supported, at most
+-- @copyDstLayoutCount@ values will be written to @pCopyDstLayouts@. The
+-- implementation /must/ include the
+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' image layout in
+-- @pCopyDstLayouts@.
+--
+-- If @pCopySrcLayouts@ is @NULL@, then the number of image layouts that
+-- are supported in 'CopyImageToMemoryInfoEXT'::@srcImageLayout@ and
+-- 'CopyImageToImageInfoEXT'::@srcImageLayout@ is returned in
+-- @copySrcLayoutCount@. Otherwise, @copySrcLayoutCount@ /must/ be set by
+-- the user to the number of elements in the @pCopySrcLayouts@ array, and
+-- on return the variable is overwritten with the number of values actually
+-- written to @pCopySrcLayouts@. If the value of @copySrcLayoutCount@ is
+-- less than the number of image layouts that are supported, at most
+-- @copySrcLayoutCount@ values will be written to @pCopySrcLayouts@. The
+-- implementation /must/ include the
+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' image layout in
+-- @pCopySrcLayouts@.
+--
+-- The @optimalTilingLayoutUUID@ value can be used to ensure compatible
+-- data layouts when using the 'HOST_IMAGE_COPY_MEMCPY_EXT' flag in
+-- 'copyMemoryToImageEXT' and 'copyImageToMemoryEXT'.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT'
+--
+-- -   #VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameter#
+--     If @copySrcLayoutCount@ is not @0@, and @pCopySrcLayouts@ is not
+--     @NULL@, @pCopySrcLayouts@ /must/ be a valid pointer to an array of
+--     @copySrcLayoutCount@ 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     values
+--
+-- -   #VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameter#
+--     If @copyDstLayoutCount@ is not @0@, and @pCopyDstLayouts@ is not
+--     @NULL@, @pCopyDstLayouts@ /must/ be a valid pointer to an array of
+--     @copyDstLayoutCount@ 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'
+--     values
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceHostImageCopyPropertiesEXT = PhysicalDeviceHostImageCopyPropertiesEXT
+  { -- | @copySrcLayoutCount@ is an integer related to the number of image
+    -- layouts for host copies from images available or queried, as described
+    -- below.
+    copySrcLayoutCount :: Word32
+  , -- | @pCopySrcLayouts@ is a pointer to an array of
+    -- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' in which supported image
+    -- layouts for use with host copy operations from images are returned.
+    copySrcLayouts :: Ptr ImageLayout
+  , -- | @copyDstLayoutCount@ is an integer related to the number of image
+    -- layouts for host copies to images available or queried, as described
+    -- below.
+    copyDstLayoutCount :: Word32
+  , -- | @pCopyDstLayouts@ is a pointer to an array of
+    -- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' in which supported image
+    -- layouts for use with host copy operations to images are returned.
+    copyDstLayouts :: Ptr ImageLayout
+  , -- | @optimalTilingLayoutUUID@ is an array of
+    -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values representing a
+    -- universally unique identifier for the implementation’s swizzling layout
+    -- of images created with
+    -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.
+    optimalTilingLayoutUUID :: ByteString
+  , -- | @identicalMemoryTypeRequirements@ indicates that specifying the
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+    -- flag in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ does not affect
+    -- the memory type requirements of the image.
+    identicalMemoryTypeRequirements :: Bool
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceHostImageCopyPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceHostImageCopyPropertiesEXT
+
+instance ToCStruct PhysicalDeviceHostImageCopyPropertiesEXT where
+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceHostImageCopyPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (copySrcLayoutCount)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr ImageLayout))) (copySrcLayouts)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (copyDstLayoutCount)
+    poke ((p `plusPtr` 40 :: Ptr (Ptr ImageLayout))) (copyDstLayouts)
+    pokeFixedLengthByteString ((p `plusPtr` 48 :: Ptr (FixedArray UUID_SIZE Word8))) (optimalTilingLayoutUUID)
+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (identicalMemoryTypeRequirements))
+    f
+  cStructSize = 72
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceHostImageCopyPropertiesEXT where
+  peekCStruct p = do
+    copySrcLayoutCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pCopySrcLayouts <- peek @(Ptr ImageLayout) ((p `plusPtr` 24 :: Ptr (Ptr ImageLayout)))
+    copyDstLayoutCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    pCopyDstLayouts <- peek @(Ptr ImageLayout) ((p `plusPtr` 40 :: Ptr (Ptr ImageLayout)))
+    optimalTilingLayoutUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 48 :: Ptr (FixedArray UUID_SIZE Word8)))
+    identicalMemoryTypeRequirements <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))
+    pure $ PhysicalDeviceHostImageCopyPropertiesEXT
+             copySrcLayoutCount
+             pCopySrcLayouts
+             copyDstLayoutCount
+             pCopyDstLayouts
+             optimalTilingLayoutUUID
+             (bool32ToBool identicalMemoryTypeRequirements)
+
+instance Storable PhysicalDeviceHostImageCopyPropertiesEXT where
+  sizeOf ~_ = 72
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceHostImageCopyPropertiesEXT where
+  zero = PhysicalDeviceHostImageCopyPropertiesEXT
+           zero
+           zero
+           zero
+           zero
+           mempty
+           zero
+
+
+-- | VkMemoryToImageCopyEXT - Structure specifying a host memory to image
+-- copy operation
+--
+-- = Description
+--
+-- This structure is functionally similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',
+-- except it defines host memory as the source of copy instead of a buffer.
+-- In particular, the same data packing rules and restrictions as that
+-- structure apply here as well.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-pHostPointer-09061# @pHostPointer@
+--     /must/ point to memory that is large enough to contain all memory
+--     locations that are accessed according to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,
+--     for each element of @pRegions@
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-pRegions-09062# The union of all source
+--     regions, and the union of all destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101#
+--     @memoryRowLength@ /must/ be @0@, or greater than or equal to the
+--     @width@ member of @imageExtent@
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102#
+--     @memoryImageHeight@ /must/ be @0@, or greater than or equal to the
+--     @height@ member of @imageExtent@
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-aspectMask-09103# The @aspectMask@
+--     member of @imageSubresource@ /must/ only have a single bit set
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-imageExtent-06659# @imageExtent.width@
+--     /must/ not be 0
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-imageExtent-06660# @imageExtent.height@
+--     /must/ not be 0
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-imageExtent-06661# @imageExtent.depth@
+--     /must/ not be 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT'
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-pNext-pNext# @pNext@ /must/ be @NULL@
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter# @pHostPointer@
+--     /must/ be a pointer value
+--
+-- -   #VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter#
+--     @imageSubresource@ /must/ be a valid
+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'
+--     structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'CopyMemoryToImageInfoEXT', 'Vulkan.Core10.FundamentalTypes.Extent3D',
+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',
+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data MemoryToImageCopyEXT = MemoryToImageCopyEXT
+  { -- | @pHostPointer@ is the host memory address which is the source of the
+    -- copy.
+    hostPointer :: Ptr ()
+  , -- | @memoryRowLength@ and @memoryImageHeight@ specify in texels a subregion
+    -- of a larger two- or three-dimensional image in host memory, and control
+    -- the addressing calculations. If either of these values is zero, that
+    -- aspect of the host memory is considered to be tightly packed according
+    -- to the @imageExtent@.
+    memoryRowLength :: Word32
+  , -- No documentation found for Nested "VkMemoryToImageCopyEXT" "memoryImageHeight"
+    memoryImageHeight :: Word32
+  , -- | @imageSubresource@ is a
+    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to
+    -- specify the specific image subresources of the image used for the source
+    -- or destination image data.
+    imageSubresource :: ImageSubresourceLayers
+  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the
+    -- sub-region of the destination image data.
+    imageOffset :: Offset3D
+  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,
+    -- @height@ and @depth@.
+    imageExtent :: Extent3D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (MemoryToImageCopyEXT)
+#endif
+deriving instance Show MemoryToImageCopyEXT
+
+instance ToCStruct MemoryToImageCopyEXT where
+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p MemoryToImageCopyEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (hostPointer)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (memoryRowLength)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (memoryImageHeight)
+    poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource)
+    poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset)
+    poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent)
+    f
+  cStructSize = 72
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)
+    f
+
+instance FromCStruct MemoryToImageCopyEXT where
+  peekCStruct p = do
+    pHostPointer <- peek @(Ptr ()) ((p `plusPtr` 16 :: Ptr (Ptr ())))
+    memoryRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    memoryImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))
+    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))
+    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))
+    pure $ MemoryToImageCopyEXT
+             pHostPointer
+             memoryRowLength
+             memoryImageHeight
+             imageSubresource
+             imageOffset
+             imageExtent
+
+instance Storable MemoryToImageCopyEXT where
+  sizeOf ~_ = 72
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero MemoryToImageCopyEXT where
+  zero = MemoryToImageCopyEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkImageToMemoryCopyEXT - Structure specifying an image to host memory
+-- copy operation
+--
+-- = Description
+--
+-- This structure is functionally similar to
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',
+-- except it defines host memory as the target of copy instead of a buffer.
+-- In particular, the same data packing rules and restrictions as that
+-- structure apply here as well.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-pHostPointer-09066# @pHostPointer@
+--     /must/ point to memory that is large enough to contain all memory
+--     locations that are accessed according to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,
+--     for each element of @pRegions@
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-pRegions-09067# The union of all source
+--     regions, and the union of all destination regions, specified by the
+--     elements of @pRegions@, /must/ not overlap in memory
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101#
+--     @memoryRowLength@ /must/ be @0@, or greater than or equal to the
+--     @width@ member of @imageExtent@
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102#
+--     @memoryImageHeight@ /must/ be @0@, or greater than or equal to the
+--     @height@ member of @imageExtent@
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-aspectMask-09103# The @aspectMask@
+--     member of @imageSubresource@ /must/ only have a single bit set
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-imageExtent-06659# @imageExtent.width@
+--     /must/ not be 0
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-imageExtent-06660# @imageExtent.height@
+--     /must/ not be 0
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-imageExtent-06661# @imageExtent.depth@
+--     /must/ not be 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT'
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-pNext-pNext# @pNext@ /must/ be @NULL@
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-pHostPointer-parameter# @pHostPointer@
+--     /must/ be a pointer value
+--
+-- -   #VUID-VkImageToMemoryCopyEXT-imageSubresource-parameter#
+--     @imageSubresource@ /must/ be a valid
+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'
+--     structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'CopyImageToMemoryInfoEXT', 'Vulkan.Core10.FundamentalTypes.Extent3D',
+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',
+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ImageToMemoryCopyEXT = ImageToMemoryCopyEXT
+  { -- | @pHostPointer@ is the host memory address which is the destination of
+    -- the copy.
+    hostPointer :: Ptr ()
+  , -- | @memoryRowLength@ and @memoryImageHeight@ specify in texels a subregion
+    -- of a larger two- or three-dimensional image in host memory, and control
+    -- the addressing calculations. If either of these values is zero, that
+    -- aspect of the host memory is considered to be tightly packed according
+    -- to the @imageExtent@.
+    memoryRowLength :: Word32
+  , -- No documentation found for Nested "VkImageToMemoryCopyEXT" "memoryImageHeight"
+    memoryImageHeight :: Word32
+  , -- | @imageSubresource@ is a
+    -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to
+    -- specify the specific image subresources of the image used for the source
+    -- or destination image data.
+    imageSubresource :: ImageSubresourceLayers
+  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the
+    -- sub-region of the source image data.
+    imageOffset :: Offset3D
+  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,
+    -- @height@ and @depth@.
+    imageExtent :: Extent3D
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageToMemoryCopyEXT)
+#endif
+deriving instance Show ImageToMemoryCopyEXT
+
+instance ToCStruct ImageToMemoryCopyEXT where
+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageToMemoryCopyEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (hostPointer)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (memoryRowLength)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (memoryImageHeight)
+    poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource)
+    poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset)
+    poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent)
+    f
+  cStructSize = 72
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero)
+    poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)
+    f
+
+instance FromCStruct ImageToMemoryCopyEXT where
+  peekCStruct p = do
+    pHostPointer <- peek @(Ptr ()) ((p `plusPtr` 16 :: Ptr (Ptr ())))
+    memoryRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    memoryImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))
+    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))
+    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))
+    pure $ ImageToMemoryCopyEXT
+             pHostPointer
+             memoryRowLength
+             memoryImageHeight
+             imageSubresource
+             imageOffset
+             imageExtent
+
+instance Storable ImageToMemoryCopyEXT where
+  sizeOf ~_ = 72
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageToMemoryCopyEXT where
+  zero = ImageToMemoryCopyEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkCopyMemoryToImageInfoEXT - Structure specifying parameters of host
+-- memory to image copy command
+--
+-- = Description
+--
+-- 'copyMemoryToImageEXT' does not check whether the device memory
+-- associated with @dstImage@ is currently in use before performing the
+-- copy. The application /must/ guarantee that any previously submitted
+-- command that reads from or writes to the copy regions has completed
+-- before the host performs the copy.
+--
+-- Copy regions for the image /must/ be aligned to a multiple of the texel
+-- block extent in each dimension, except at the edges of the image, where
+-- region extents /must/ match the edge of the image.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109# If @dstImage@ is
+--     sparse then all memory ranges accessed by the copy command /must/ be
+--     bound as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-binding Binding Resource Memory>
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111# If the stencil
+--     aspect of @dstImage@ is accessed, and @dstImage@ was not created
+--     with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @dstImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112# If the stencil
+--     aspect of @dstImage@ is accessed, and @dstImage@ was created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @dstImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113# If non-stencil
+--     aspects of @dstImage@ are accessed, @dstImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114# If @flags@
+--     contains 'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members
+--     of the @imageOffset@ member of each element of @pRegions@ /must/ be
+--     @0@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115# If @flags@ contains
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', the @imageExtent@ member of each
+--     element of @pRegions@ /must/ equal the extents of @dstImage@
+--     identified by @imageSubresource@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07966# If @dstImage@ is
+--     non-sparse then the image or the specified /disjoint/ plane /must/
+--     be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967# The
+--     @imageSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968# The
+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
+--     each element of @pRegions@ , if @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969# @dstImage@ /must/
+--     not have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07970# The image
+--     region specified by each element of @pRegions@ /must/ be contained
+--     within the specified @imageSubresource@ of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971# For each
+--     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
+--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the width of the specified @imageSubresource@
+--     of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07972# For each
+--     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
+--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the height of the specified @imageSubresource@
+--     of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973# @dstImage@ /must/
+--     have a sample count equal to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
+--     @imageExtent.height@ /must/ be @1@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104# For each element
+--     of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
+--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the depth of the specified @imageSubresource@
+--     of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07980# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
+--     /must/ be @1@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275# For each element of
+--     @pRegions@, @imageOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276# For each element of
+--     @pRegions@, @imageOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207# For each element of
+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
+--     not equal the width of the subresource specified by
+--     @srcSubresource@, @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208# For each element of
+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
+--     not equal the height of the subresource specified by
+--     @srcSubresource@, @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209# For each element of
+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
+--     not equal the depth of the subresource specified by
+--     @srcSubresource@, @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-09105# For each
+--     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify
+--     aspects present in @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981# If @dstImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @imageSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
+--     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @imageSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106# For each
+--     element of @pRegions@, @memoryRowLength@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107# For each
+--     element of @pRegions@, @memoryImageHeight@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108# For each
+--     element of @pRegions@, @memoryRowLength@ divided by the
+--     <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 @dstImage@ /must/ be
+--     less than or equal to 231-1
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059#
+--     @dstImageLayout@ /must/ specify the current layout of the image
+--     subresources of @dstImage@ specified in @pRegions@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060#
+--     @dstImageLayout@ /must/ be one of the image layouts returned in
+--     'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopyDstLayouts@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-flags-09393# If @flags@ includes
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', for each region in @pRegions@,
+--     @memoryRowLength@ and @memoryImageHeight@ /must/ both be 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT'
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-flags-parameter# @flags@ /must/ be
+--     a valid combination of 'HostImageCopyFlagBitsEXT' values
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter# @dstImage@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter#
+--     @dstImageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter# @pRegions@
+--     /must/ be a valid pointer to an array of @regionCount@ valid
+--     'MemoryToImageCopyEXT' structures
+--
+-- -   #VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength#
+--     @regionCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'HostImageCopyFlagsEXT', 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'MemoryToImageCopyEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'copyMemoryToImageEXT'
+data CopyMemoryToImageInfoEXT = CopyMemoryToImageInfoEXT
+  { -- | @flags@ is a bitmask of 'HostImageCopyFlagBitsEXT' values describing
+    -- additional copy parameters.
+    flags :: HostImageCopyFlagsEXT
+  , -- | @dstImage@ is the destination image.
+    dstImage :: Image
+  , -- | @dstImageLayout@ is the layout of the destination image subresources for
+    -- the copy.
+    dstImageLayout :: ImageLayout
+  , -- | @pRegions@ is a pointer to an array of 'MemoryToImageCopyEXT' structures
+    -- specifying the regions to copy.
+    regions :: Vector MemoryToImageCopyEXT
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CopyMemoryToImageInfoEXT)
+#endif
+deriving instance Show CopyMemoryToImageInfoEXT
+
+instance ToCStruct CopyMemoryToImageInfoEXT where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CopyMemoryToImageInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) (flags)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)
+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+    pPRegions' <- ContT $ allocaBytes @MemoryToImageCopyEXT ((Data.Vector.length (regions)) * 72)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (72 * (i)) :: Ptr MemoryToImageCopyEXT) (e)) (regions)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr MemoryToImageCopyEXT))) (pPRegions')
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr Image)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)
+    f
+
+instance FromCStruct CopyMemoryToImageInfoEXT where
+  peekCStruct p = do
+    flags <- peek @HostImageCopyFlagsEXT ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT))
+    dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))
+    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))
+    regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    pRegions <- peek @(Ptr MemoryToImageCopyEXT) ((p `plusPtr` 40 :: Ptr (Ptr MemoryToImageCopyEXT)))
+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @MemoryToImageCopyEXT ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr MemoryToImageCopyEXT)))
+    pure $ CopyMemoryToImageInfoEXT
+             flags dstImage dstImageLayout pRegions'
+
+instance Zero CopyMemoryToImageInfoEXT where
+  zero = CopyMemoryToImageInfoEXT
+           zero
+           zero
+           zero
+           mempty
+
+
+-- | VkCopyImageToMemoryInfoEXT - Structure specifying parameters of an image
+-- to host memory copy command
+--
+-- = Description
+--
+-- 'copyImageToMemoryEXT' does not check whether the device memory
+-- associated with @srcImage@ is currently in use before performing the
+-- copy. The application /must/ guarantee that any previously submitted
+-- command that writes to the copy regions has completed before the host
+-- performs the copy.
+--
+-- Copy regions for the image /must/ be aligned to a multiple of the texel
+-- block extent in each dimension, except at the edges of the image, where
+-- region extents /must/ match the edge of the image.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109# If @srcImage@ is
+--     sparse then all memory ranges accessed by the copy command /must/ be
+--     bound as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-binding Binding Resource Memory>
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111# If the stencil
+--     aspect of @srcImage@ is accessed, and @srcImage@ was not created
+--     with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @srcImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112# If the stencil
+--     aspect of @srcImage@ is accessed, and @srcImage@ was created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @srcImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113# If non-stencil
+--     aspects of @srcImage@ are accessed, @srcImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114# If @flags@
+--     contains 'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members
+--     of the @imageOffset@ member of each element of @pRegions@ /must/ be
+--     @0@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115# If @flags@ contains
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', the @imageExtent@ member of each
+--     element of @pRegions@ /must/ equal the extents of @srcImage@
+--     identified by @imageSubresource@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07966# If @srcImage@ is
+--     non-sparse then the image or the specified /disjoint/ plane /must/
+--     be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967# The
+--     @imageSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968# The
+--     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of
+--     each element of @pRegions@ , if @imageSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969# @srcImage@ /must/
+--     not have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07970# The image
+--     region specified by each element of @pRegions@ /must/ be contained
+--     within the specified @imageSubresource@ of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971# For each
+--     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
+--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the width of the specified @imageSubresource@
+--     of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07972# For each
+--     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
+--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the height of the specified @imageSubresource@
+--     of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973# @srcImage@ /must/
+--     have a sample count equal to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
+--     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and
+--     @imageExtent.height@ /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104# For each element
+--     of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +
+--     @imageOffset.z@) /must/ both be greater than or equal to @0@ and
+--     less than or equal to the depth of the specified @imageSubresource@
+--     of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07980# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@
+--     /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275# For each element of
+--     @pRegions@, @imageOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276# For each element of
+--     @pRegions@, @imageOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207# For each element of
+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does
+--     not equal the width of the subresource specified by
+--     @srcSubresource@, @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208# For each element of
+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does
+--     not equal the height of the subresource specified by
+--     @srcSubresource@, @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209# For each element of
+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does
+--     not equal the depth of the subresource specified by
+--     @srcSubresource@, @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-09105# For each
+--     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify
+--     aspects present in @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981# If @srcImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @imageSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
+--     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @imageSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106# For each
+--     element of @pRegions@, @memoryRowLength@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107# For each
+--     element of @pRegions@, @memoryImageHeight@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108# For each
+--     element of @pRegions@, @memoryRowLength@ divided by the
+--     <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-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064#
+--     @srcImageLayout@ /must/ specify the current layout of the image
+--     subresources of @srcImage@ specified in @pRegions@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065#
+--     @srcImageLayout@ /must/ be one of the image layouts returned in
+--     'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopySrcLayouts@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-flags-09394# If @flags@ includes
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', for each region in @pRegions@,
+--     @memoryRowLength@ and @memoryImageHeight@ /must/ both be 0
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT'
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-flags-parameter# @flags@ /must/ be
+--     a valid combination of 'HostImageCopyFlagBitsEXT' values
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameter# @srcImage@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameter#
+--     @srcImageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameter# @pRegions@
+--     /must/ be a valid pointer to an array of @regionCount@ valid
+--     'ImageToMemoryCopyEXT' structures
+--
+-- -   #VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylength#
+--     @regionCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'HostImageCopyFlagsEXT', 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageToMemoryCopyEXT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'copyImageToMemoryEXT'
+data CopyImageToMemoryInfoEXT = CopyImageToMemoryInfoEXT
+  { -- | @flags@ is a bitmask of 'HostImageCopyFlagBitsEXT' values describing
+    -- additional copy parameters.
+    flags :: HostImageCopyFlagsEXT
+  , -- | @srcImage@ is the source image.
+    srcImage :: Image
+  , -- | @srcImageLayout@ is the layout of the source image subresources for the
+    -- copy.
+    srcImageLayout :: ImageLayout
+  , -- | @pRegions@ is a pointer to an array of 'ImageToMemoryCopyEXT' structures
+    -- specifying the regions to copy.
+    regions :: Vector ImageToMemoryCopyEXT
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CopyImageToMemoryInfoEXT)
+#endif
+deriving instance Show CopyImageToMemoryInfoEXT
+
+instance ToCStruct CopyImageToMemoryInfoEXT where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CopyImageToMemoryInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) (flags)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (srcImage)
+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (srcImageLayout)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+    pPRegions' <- ContT $ allocaBytes @ImageToMemoryCopyEXT ((Data.Vector.length (regions)) * 72)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (72 * (i)) :: Ptr ImageToMemoryCopyEXT) (e)) (regions)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr ImageToMemoryCopyEXT))) (pPRegions')
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr Image)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)
+    f
+
+instance FromCStruct CopyImageToMemoryInfoEXT where
+  peekCStruct p = do
+    flags <- peek @HostImageCopyFlagsEXT ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT))
+    srcImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))
+    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))
+    regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    pRegions <- peek @(Ptr ImageToMemoryCopyEXT) ((p `plusPtr` 40 :: Ptr (Ptr ImageToMemoryCopyEXT)))
+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageToMemoryCopyEXT ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr ImageToMemoryCopyEXT)))
+    pure $ CopyImageToMemoryInfoEXT
+             flags srcImage srcImageLayout pRegions'
+
+instance Zero CopyImageToMemoryInfoEXT where
+  zero = CopyImageToMemoryInfoEXT
+           zero
+           zero
+           zero
+           mempty
+
+
+-- | VkCopyImageToImageInfoEXT - Structure specifying parameters of an image
+-- to image host copy command
+--
+-- = Description
+--
+-- 'copyImageToImageEXT' does not check whether the device memory
+-- associated with @srcImage@ or @dstImage@ is currently in use before
+-- performing the copy. The application /must/ guarantee that any
+-- previously submitted command that writes to the copy regions has
+-- completed before the host performs the copy.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-09069# @srcImage@ and
+--     @dstImage@ /must/ have been created with identical image creation
+--     parameters
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-09109# If @srcImage@ is
+--     sparse then all memory ranges accessed by the copy command /must/ be
+--     bound as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-binding Binding Resource Memory>
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-09111# If the stencil
+--     aspect of @srcImage@ is accessed, and @srcImage@ was not created
+--     with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @srcImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-09112# If the stencil
+--     aspect of @srcImage@ is accessed, and @srcImage@ was created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @srcImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-09113# If non-stencil
+--     aspects of @srcImage@ are accessed, @srcImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcOffset-09114# If @flags@ contains
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members of the
+--     @srcOffset@ member of each element of @pRegions@ /must/ be @0@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-09115# If @flags@ contains
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', the @extent@ member of each element of
+--     @pRegions@ /must/ equal the extents of @srcImage@ identified by
+--     @srcSubresource@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07966# If @srcImage@ is
+--     non-sparse then the image or the specified /disjoint/ plane /must/
+--     be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967# The
+--     @srcSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968# The
+--     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of
+--     each element of @pRegions@ , if @srcSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@
+--     was created
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07969# @srcImage@ /must/
+--     not have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07970# The image
+--     region specified by each element of @pRegions@ /must/ be contained
+--     within the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971# For each
+--     element of @pRegions@, @srcOffset.x@ and (@extent.width@ +
+--     @srcOffset.x@) /must/ both be greater than or equal to @0@ and less
+--     than or equal to the width of the specified @srcSubresource@ of
+--     @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972# For each
+--     element of @pRegions@, @srcOffset.y@ and (@extent.height@ +
+--     @srcOffset.y@) /must/ both be greater than or equal to @0@ and less
+--     than or equal to the height of the specified @srcSubresource@ of
+--     @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07979# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
+--     element of @pRegions@, @srcOffset.y@ /must/ be @0@ and
+--     @extent.height@ /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcOffset-09104# For each element of
+--     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the depth of the specified @srcSubresource@ of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07980# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/
+--     be @1@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07274# For each element of
+--     @pRegions@, @srcOffset.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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07275# For each element of
+--     @pRegions@, @srcOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07276# For each element of
+--     @pRegions@, @srcOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-00207# For each element of
+--     @pRegions@, if the sum of @srcOffset.x@ and @extent.width@ does not
+--     equal the width of the subresource specified by @srcSubresource@,
+--     @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-00208# For each element of
+--     @pRegions@, if the sum of @srcOffset.y@ and @extent.height@ does not
+--     equal the height of the subresource specified by @srcSubresource@,
+--     @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-00209# For each element of
+--     @pRegions@, if the sum of @srcOffset.z@ and @extent.depth@ does not
+--     equal the depth of the subresource specified by @srcSubresource@,
+--     @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105# For each
+--     element of @pRegions@, @srcSubresource.aspectMask@ /must/ specify
+--     aspects present in @srcImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07981# If @srcImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @srcSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07983# If @srcImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @srcSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-09109# If @dstImage@ is
+--     sparse then all memory ranges accessed by the copy command /must/ be
+--     bound as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-binding Binding Resource Memory>
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-09111# If the stencil
+--     aspect of @dstImage@ is accessed, and @dstImage@ was not created
+--     with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @dstImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-09112# If the stencil
+--     aspect of @dstImage@ is accessed, and @dstImage@ was created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,
+--     @dstImage@ /must/ have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in
+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-09113# If non-stencil
+--     aspects of @dstImage@ are accessed, @dstImage@ /must/ have been
+--     created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--     set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstOffset-09114# If @flags@ contains
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members of the
+--     @dstOffset@ member of each element of @pRegions@ /must/ be @0@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-09115# If @flags@ contains
+--     'HOST_IMAGE_COPY_MEMCPY_EXT', the @extent@ member of each element of
+--     @pRegions@ /must/ equal the extents of @dstImage@ identified by
+--     @dstSubresource@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07966# If @dstImage@ is
+--     non-sparse then the image or the specified /disjoint/ plane /must/
+--     be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967# The
+--     @dstSubresource.mipLevel@ member of each element of @pRegions@
+--     /must/ be less than the @mipLevels@ specified in
+--     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968# The
+--     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of
+--     each element of @pRegions@ , if @dstSubresource.layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     is not enabled, /must/ be less than or equal to the @arrayLayers@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
+--     was created
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07969# @dstImage@ /must/
+--     not have been created with @flags@ containing
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07970# The image
+--     region specified by each element of @pRegions@ /must/ be contained
+--     within the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971# For each
+--     element of @pRegions@, @dstOffset.x@ and (@extent.width@ +
+--     @dstOffset.x@) /must/ both be greater than or equal to @0@ and less
+--     than or equal to the width of the specified @dstSubresource@ of
+--     @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972# For each
+--     element of @pRegions@, @dstOffset.y@ and (@extent.height@ +
+--     @dstOffset.y@) /must/ both be greater than or equal to @0@ and less
+--     than or equal to the height of the specified @dstSubresource@ of
+--     @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07979# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each
+--     element of @pRegions@, @dstOffset.y@ /must/ be @0@ and
+--     @extent.height@ /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstOffset-09104# For each element of
+--     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
+--     /must/ both be greater than or equal to @0@ and less than or equal
+--     to the depth of the specified @dstSubresource@ of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07980# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element
+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/
+--     be @1@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07274# For each element of
+--     @pRegions@, @dstOffset.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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07275# For each element of
+--     @pRegions@, @dstOffset.y@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07276# For each element of
+--     @pRegions@, @dstOffset.z@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-00207# For each element of
+--     @pRegions@, if the sum of @dstOffset.x@ and @extent.width@ does not
+--     equal the width of the subresource specified by @srcSubresource@,
+--     @extent.width@ /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>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-00208# For each element of
+--     @pRegions@, if the sum of @dstOffset.y@ and @extent.height@ does not
+--     equal the height of the subresource specified by @srcSubresource@,
+--     @extent.height@ /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 height>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-00209# For each element of
+--     @pRegions@, if the sum of @dstOffset.z@ and @extent.depth@ does not
+--     equal the depth of the subresource specified by @srcSubresource@,
+--     @extent.depth@ /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 depth>
+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105# For each
+--     element of @pRegions@, @dstSubresource.aspectMask@ /must/ specify
+--     aspects present in @dstImage@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07981# If @dstImage@ has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then for each element of @pRegions@, @dstSubresource.aspectMask@
+--     /must/ be a single valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07983# If @dstImage@ is of
+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element
+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and
+--     @dstSubresource.layerCount@ /must/ be @1@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070#
+--     @srcImageLayout@ /must/ specify the current layout of the image
+--     subresources of @srcImage@ specified in @pRegions@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071#
+--     @dstImageLayout@ /must/ specify the current layout of the image
+--     subresources of @dstImage@ specified in @pRegions@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072#
+--     @srcImageLayout@ /must/ be one of the image layouts returned in
+--     'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopySrcLayouts@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073#
+--     @dstImageLayout@ /must/ be one of the image layouts returned in
+--     'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopyDstLayouts@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT'
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-flags-parameter# @flags@ /must/ be a
+--     valid combination of 'HostImageCopyFlagBitsEXT' values
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-parameter# @srcImage@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameter#
+--     @srcImageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-parameter# @dstImage@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameter#
+--     @dstImageLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-pRegions-parameter# @pRegions@
+--     /must/ be a valid pointer to an array of @regionCount@ valid
+--     'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2'
+--     structures
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-regionCount-arraylength#
+--     @regionCount@ /must/ be greater than @0@
+--
+-- -   #VUID-VkCopyImageToImageInfoEXT-commonparent# Both of @dstImage@,
+--     and @srcImage@ /must/ have been created, allocated, or retrieved
+--     from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'HostImageCopyFlagsEXT', 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'copyImageToImageEXT'
+data CopyImageToImageInfoEXT = CopyImageToImageInfoEXT
+  { -- | @flags@ is a bitmask of 'HostImageCopyFlagBitsEXT' values describing
+    -- additional copy parameters.
+    flags :: HostImageCopyFlagsEXT
+  , -- | @srcImage@ is the source image.
+    srcImage :: Image
+  , -- | @srcImageLayout@ is the layout of the source image subresources for the
+    -- copy.
+    srcImageLayout :: ImageLayout
+  , -- | @dstImage@ is the destination image.
+    dstImage :: Image
+  , -- | @dstImageLayout@ is the layout of the destination image subresources for
+    -- the copy.
+    dstImageLayout :: ImageLayout
+  , -- | @pRegions@ is a pointer to an array of
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2'
+    -- structures specifying the regions to copy.
+    regions :: Vector ImageCopy2
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CopyImageToImageInfoEXT)
+#endif
+deriving instance Show CopyImageToImageInfoEXT
+
+instance ToCStruct CopyImageToImageInfoEXT where
+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CopyImageToImageInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) (flags)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (srcImage)
+    lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (srcImageLayout)
+    lift $ poke ((p `plusPtr` 40 :: Ptr Image)) (dstImage)
+    lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (dstImageLayout)
+    lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))
+    pPRegions' <- ContT $ allocaBytes @ImageCopy2 ((Data.Vector.length (regions)) * 88)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2) (e)) (regions)
+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ImageCopy2))) (pPRegions')
+    lift $ f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 24 :: Ptr Image)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr Image)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)
+    f
+
+instance FromCStruct CopyImageToImageInfoEXT where
+  peekCStruct p = do
+    flags <- peek @HostImageCopyFlagsEXT ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT))
+    srcImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))
+    srcImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))
+    dstImage <- peek @Image ((p `plusPtr` 40 :: Ptr Image))
+    dstImageLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))
+    regionCount <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
+    pRegions <- peek @(Ptr ImageCopy2) ((p `plusPtr` 56 :: Ptr (Ptr ImageCopy2)))
+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2 ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2)))
+    pure $ CopyImageToImageInfoEXT
+             flags srcImage srcImageLayout dstImage dstImageLayout pRegions'
+
+instance Zero CopyImageToImageInfoEXT where
+  zero = CopyImageToImageInfoEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+           mempty
+
+
+-- | VkHostImageLayoutTransitionInfoEXT - Structure specifying the parameters
+-- of a host-side image layout transition
+--
+-- = Description
+--
+-- 'transitionImageLayoutEXT' does not check whether the device memory
+-- associated with an image is currently in use before performing the
+-- layout transition. The application /must/ guarantee that any previously
+-- submitted command that reads from or writes to this subresource has
+-- completed before the host performs the layout transition.
+--
+-- Note
+--
+-- Image layout transitions performed on the host do not require queue
+-- family ownership transfers as the physical layout of the image will not
+-- vary between queue families for the layouts supported by this function.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-image-09055# @image@ /must/
+--     have been created with
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486#
+--     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was
+--     created
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-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-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488#
+--     @subresourceRange.baseArrayLayer@ /must/ be less than the
+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
+--     when @image@ was created
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-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-VkHostImageLayoutTransitionInfoEXT-image-01932# If @image@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-image-09241# If @image@ has
+--     a color format that is single-plane, then the @aspectMask@ member of
+--     @subresourceRange@ /must/ be
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-image-09242# If @image@ has
+--     a color format and is not /disjoint/, then the @aspectMask@ member
+--     of @subresourceRange@ /must/ be
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-image-01672# If @image@ has
+--     a multi-planar format and the image is /disjoint/, then the
+--     @aspectMask@ member of @subresourceRange@ /must/ include at least
+--     one
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-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-VkHostImageLayoutTransitionInfoEXT-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-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702# If the
+--     @aspectMask@ member of @subresourceRange@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',
+--     @oldLayout@ and @newLayout@ /must/ not be one of
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'
+--     or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703# If the
+--     @aspectMask@ member of @subresourceRange@ includes
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',
+--     @oldLayout@ and @newLayout@ /must/ not be one of
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'
+--     or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229#
+--     @oldLayout@ /must/ be either
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the
+--     current layout of the image subresources as specified in
+--     @subresourceRange@
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230# If
+--     @oldLayout@ is not
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED', it
+--     /must/ be one of the layouts in
+--     'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopySrcLayouts@
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057#
+--     @newLayout@ /must/ be one of the layouts in
+--     'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopyDstLayouts@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT'
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext# @pNext@ /must/
+--     be @NULL@
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter# @image@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter#
+--     @oldLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter#
+--     @newLayout@ /must/ be a valid
+--     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value
+--
+-- -   #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameter#
+--     @subresourceRange@ /must/ be a valid
+--     'Vulkan.Core10.ImageView.ImageSubresourceRange' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'Vulkan.Core10.Handles.Image',
+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',
+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'transitionImageLayoutEXT'
+data HostImageLayoutTransitionInfoEXT = HostImageLayoutTransitionInfoEXT
+  { -- | @image@ is a handle to the image affected by this layout transition.
+    image :: Image
+  , -- | @oldLayout@ is the old layout in an
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.
+    oldLayout :: ImageLayout
+  , -- | @newLayout@ is the new layout in an
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.
+    newLayout :: ImageLayout
+  , -- | @subresourceRange@ describes the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range>
+    -- within @image@ that is affected by this layout transition.
+    subresourceRange :: ImageSubresourceRange
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (HostImageLayoutTransitionInfoEXT)
+#endif
+deriving instance Show HostImageLayoutTransitionInfoEXT
+
+instance ToCStruct HostImageLayoutTransitionInfoEXT where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p HostImageLayoutTransitionInfoEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Image)) (image)
+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (oldLayout)
+    poke ((p `plusPtr` 28 :: Ptr ImageLayout)) (newLayout)
+    poke ((p `plusPtr` 32 :: Ptr ImageSubresourceRange)) (subresourceRange)
+    f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Image)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr ImageLayout)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ImageSubresourceRange)) (zero)
+    f
+
+instance FromCStruct HostImageLayoutTransitionInfoEXT where
+  peekCStruct p = do
+    image <- peek @Image ((p `plusPtr` 16 :: Ptr Image))
+    oldLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
+    newLayout <- peek @ImageLayout ((p `plusPtr` 28 :: Ptr ImageLayout))
+    subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 32 :: Ptr ImageSubresourceRange))
+    pure $ HostImageLayoutTransitionInfoEXT
+             image oldLayout newLayout subresourceRange
+
+instance Storable HostImageLayoutTransitionInfoEXT where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero HostImageLayoutTransitionInfoEXT where
+  zero = HostImageLayoutTransitionInfoEXT
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkSubresourceHostMemcpySizeEXT - Memory size needed to copy to or from
+-- an image on the host with VK_HOST_IMAGE_COPY_MEMCPY_EXT
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data SubresourceHostMemcpySizeEXT = SubresourceHostMemcpySizeEXT
+  { -- | @size@ is the size in bytes of the image subresource.
+    size :: DeviceSize }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SubresourceHostMemcpySizeEXT)
+#endif
+deriving instance Show SubresourceHostMemcpySizeEXT
+
+instance ToCStruct SubresourceHostMemcpySizeEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SubresourceHostMemcpySizeEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct SubresourceHostMemcpySizeEXT where
+  peekCStruct p = do
+    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    pure $ SubresourceHostMemcpySizeEXT
+             size
+
+instance Storable SubresourceHostMemcpySizeEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SubresourceHostMemcpySizeEXT where
+  zero = SubresourceHostMemcpySizeEXT
+           zero
+
+
+-- | VkHostImageCopyDevicePerformanceQueryEXT - Struct containing information
+-- about optimality of device access
+--
+-- = Description
+--
+-- The implementation /may/ return 'Vulkan.Core10.FundamentalTypes.FALSE'
+-- in @optimalDeviceAccess@ if @identicalMemoryLayout@ is
+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. If @identicalMemoryLayout@ is
+-- 'Vulkan.Core10.FundamentalTypes.TRUE', @optimalDeviceAccess@ /must/ be
+-- 'Vulkan.Core10.FundamentalTypes.TRUE'.
+--
+-- The implementation /may/ return 'Vulkan.Core10.FundamentalTypes.TRUE' in
+-- @optimalDeviceAccess@ while @identicalMemoryLayout@ is
+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. In this situation, any device
+-- performance impact /should/ not be measurable.
+--
+-- If
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@format@
+-- is a block-compressed format and
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
+-- returns 'Vulkan.Core10.Enums.Result.SUCCESS', the implementation /must/
+-- return 'Vulkan.Core10.FundamentalTypes.TRUE' in @optimalDeviceAccess@.
+--
+-- Note
+--
+-- Applications can make use of @optimalDeviceAccess@ to determine their
+-- resource copying strategy. If a resource is expected to be accessed more
+-- on device than on the host, and the implementation considers the
+-- resource sub-optimally accessed, it is likely better to use device
+-- copies instead.
+--
+-- Note
+--
+-- Layout not being identical yet still considered optimal for device
+-- access could happen if the implementation has different memory layout
+-- patterns, some of which are easier to access on the host.
+--
+-- Note
+--
+-- The most practical reason for @optimalDeviceAccess@ to be
+-- 'Vulkan.Core10.FundamentalTypes.FALSE' is that host image access may
+-- disable framebuffer compression where it would otherwise have been
+-- enabled. This represents far more efficient host image access since no
+-- compression algorithm is required to read or write to the image, but it
+-- would impact device access performance. Some implementations may only
+-- set @optimalDeviceAccess@ to 'Vulkan.Core10.FundamentalTypes.FALSE' if
+-- certain conditions are met, such as specific image usage flags or
+-- creation flags.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data HostImageCopyDevicePerformanceQueryEXT = HostImageCopyDevicePerformanceQueryEXT
+  { -- | @optimalDeviceAccess@ returns 'Vulkan.Core10.FundamentalTypes.TRUE' if
+    -- use of host image copy has no adverse effect on device access
+    -- performance, compared to an image that is created with exact same
+    -- creation parameters, and bound to the same
+    -- 'Vulkan.Core10.Handles.DeviceMemory', except that
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+    -- is replaced with
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+    -- and
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'.
+    optimalDeviceAccess :: Bool
+  , -- | @identicalMemoryLayout@ returns 'Vulkan.Core10.FundamentalTypes.TRUE' if
+    -- use of host image copy has no impact on memory layout compared to an
+    -- image that is created with exact same creation parameters, and bound to
+    -- the same 'Vulkan.Core10.Handles.DeviceMemory', except that
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+    -- is replaced with
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'
+    -- and
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'.
+    identicalMemoryLayout :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (HostImageCopyDevicePerformanceQueryEXT)
+#endif
+deriving instance Show HostImageCopyDevicePerformanceQueryEXT
+
+instance ToCStruct HostImageCopyDevicePerformanceQueryEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p HostImageCopyDevicePerformanceQueryEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (optimalDeviceAccess))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (identicalMemoryLayout))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT)
+    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 HostImageCopyDevicePerformanceQueryEXT where
+  peekCStruct p = do
+    optimalDeviceAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    identicalMemoryLayout <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ HostImageCopyDevicePerformanceQueryEXT
+             (bool32ToBool optimalDeviceAccess)
+             (bool32ToBool identicalMemoryLayout)
+
+instance Storable HostImageCopyDevicePerformanceQueryEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero HostImageCopyDevicePerformanceQueryEXT where
+  zero = HostImageCopyDevicePerformanceQueryEXT
+           zero
+           zero
+
+
+type HostImageCopyFlagsEXT = HostImageCopyFlagBitsEXT
+
+-- | VkHostImageCopyFlagBitsEXT - Bitmask specifying additional copy
+-- parameters
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- 'HostImageCopyFlagsEXT'
+newtype HostImageCopyFlagBitsEXT = HostImageCopyFlagBitsEXT Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'HOST_IMAGE_COPY_MEMCPY_EXT' specifies that no memory layout swizzling
+-- is to be applied during data copy. For copies between memory and images,
+-- this flag indicates that image data in host memory is swizzled in
+-- exactly the same way as the image data on the device. Using this flag
+-- indicates that the implementations /may/ use a simple memory copy to
+-- transfer the data between the host memory and the device memory. The
+-- format of the swizzled data in host memory is platform dependent and is
+-- not defined in this specification.
+pattern HOST_IMAGE_COPY_MEMCPY_EXT = HostImageCopyFlagBitsEXT 0x00000001
+
+conNameHostImageCopyFlagBitsEXT :: String
+conNameHostImageCopyFlagBitsEXT = "HostImageCopyFlagBitsEXT"
+
+enumPrefixHostImageCopyFlagBitsEXT :: String
+enumPrefixHostImageCopyFlagBitsEXT = "HOST_IMAGE_COPY_MEMCPY_EXT"
+
+showTableHostImageCopyFlagBitsEXT :: [(HostImageCopyFlagBitsEXT, String)]
+showTableHostImageCopyFlagBitsEXT = [(HOST_IMAGE_COPY_MEMCPY_EXT, "")]
+
+instance Show HostImageCopyFlagBitsEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixHostImageCopyFlagBitsEXT
+      showTableHostImageCopyFlagBitsEXT
+      conNameHostImageCopyFlagBitsEXT
+      (\(HostImageCopyFlagBitsEXT x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read HostImageCopyFlagBitsEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixHostImageCopyFlagBitsEXT
+      showTableHostImageCopyFlagBitsEXT
+      conNameHostImageCopyFlagBitsEXT
+      HostImageCopyFlagBitsEXT
+
+-- No documentation found for TopLevel "VkImageSubresource2EXT"
+type ImageSubresource2EXT = ImageSubresource2KHR
+
+
+-- No documentation found for TopLevel "VkSubresourceLayout2EXT"
+type SubresourceLayout2EXT = SubresourceLayout2KHR
+
+
+type EXT_HOST_IMAGE_COPY_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION"
+pattern EXT_HOST_IMAGE_COPY_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_HOST_IMAGE_COPY_SPEC_VERSION = 1
+
+
+type EXT_HOST_IMAGE_COPY_EXTENSION_NAME = "VK_EXT_host_image_copy"
+
+-- No documentation found for TopLevel "VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME"
+pattern EXT_HOST_IMAGE_COPY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_HOST_IMAGE_COPY_EXTENSION_NAME = "VK_EXT_host_image_copy"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot
@@ -0,0 +1,344 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_host_image_copy - device extension
+--
+-- == VK_EXT_host_image_copy
+--
+-- [__Name String__]
+--     @VK_EXT_host_image_copy@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     271
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+--
+-- [__Contact__]
+--
+--     -   Shahbaz Youssefi
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_host_image_copy] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_host_image_copy extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_host_image_copy.adoc VK_EXT_host_image_copy>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-04-26
+--
+-- [__Contributors__]
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Faith Ekstrand, Collabora
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   James Fitzpatrick, Imagination
+--
+--     -   Daniel Story, Nintendo
+--
+-- == Description
+--
+-- This extension allows applications to copy data between host memory and
+-- images on the host processor, without staging the data through a
+-- GPU-accessible buffer. This removes the need to allocate and manage the
+-- buffer and its associated memory. On some architectures it may also
+-- eliminate an extra copy operation. This extension additionally allows
+-- applications to copy data between images on the host.
+--
+-- To support initializing a new image in preparation for a host copy, it
+-- is now possible to transition a new image to
+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or other
+-- host-copyable layouts via 'transitionImageLayoutEXT'. Additionally, it
+-- is possible to perform copies that preserve the swizzling layout of the
+-- image by using the 'HOST_IMAGE_COPY_MEMCPY_EXT' flag. In that case, the
+-- memory size needed for copies to or from a buffer can be retrieved by
+-- chaining 'SubresourceHostMemcpySizeEXT' to @pLayout@ in
+-- 'getImageSubresourceLayout2EXT'.
+--
+-- == New Commands
+--
+-- -   'copyImageToImageEXT'
+--
+-- -   'copyImageToMemoryEXT'
+--
+-- -   'copyMemoryToImageEXT'
+--
+-- -   'getImageSubresourceLayout2EXT'
+--
+-- -   'transitionImageLayoutEXT'
+--
+-- == New Structures
+--
+-- -   'CopyImageToImageInfoEXT'
+--
+-- -   'CopyImageToMemoryInfoEXT'
+--
+-- -   'CopyMemoryToImageInfoEXT'
+--
+-- -   'HostImageLayoutTransitionInfoEXT'
+--
+-- -   'ImageSubresource2EXT'
+--
+-- -   'ImageToMemoryCopyEXT'
+--
+-- -   'MemoryToImageCopyEXT'
+--
+-- -   'SubresourceLayout2EXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2':
+--
+--     -   'HostImageCopyDevicePerformanceQueryEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceHostImageCopyFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceHostImageCopyPropertiesEXT'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR':
+--
+--     -   'SubresourceHostMemcpySizeEXT'
+--
+-- == New Enums
+--
+-- -   'HostImageCopyFlagBitsEXT'
+--
+-- == New Bitmasks
+--
+-- -   'HostImageCopyFlagsEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_HOST_IMAGE_COPY_EXTENSION_NAME'
+--
+-- -   'EXT_HOST_IMAGE_COPY_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':
+--
+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT'
+--
+-- == Issues
+--
+-- 1) When uploading data to an image, the data is usually loaded from
+-- disk. Why not have the application load the data directly into a
+-- 'Vulkan.Core10.Handles.DeviceMemory' bound to a buffer (instead of host
+-- memory), and use
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage'? The same
+-- could be done when downloading data from an image.
+--
+-- __RESOLVED__: This may not always be possible. Complicated Vulkan
+-- applications such as game engines often have decoupled subsystems for
+-- streaming data and rendering. It may be unreasonable to require the
+-- streaming subsystem to coordinate with the rendering subsystem to
+-- allocate memory on its behalf, especially as Vulkan may not be the only
+-- API supported by the engine. In emulation layers, the image data is
+-- necessarily provided by the application in host memory, so an
+-- optimization as suggested is not possible. Most importantly, the device
+-- memory may not be mappable by an application, but still accessible to
+-- the driver.
+--
+-- 2) Are @optimalBufferCopyOffsetAlignment@ and
+-- @optimalBufferCopyRowPitchAlignment@ applicable to host memory as well
+-- with the functions introduced by this extension? Or should there be new
+-- limits?
+--
+-- __RESOLVED__: No alignment requirements for the host memory pointer.
+--
+-- 3) Should there be granularity requirements for image offsets and
+-- extents?
+--
+-- __RESOLVED__: No granularity requirements, i.e. a granularity of 1 pixel
+-- (for non-compressed formats) and 1 texel block (for compressed formats)
+-- is assumed.
+--
+-- 4) How should the application deal with layout transitions before or
+-- after copying to or from images?
+--
+-- __RESOLVED__: An existing issue with linear images is that when
+-- emulating other APIs, it is impossible to know when to transition them
+-- as they are written to by the host and then used bindlessly. The copy
+-- operations in this extension are affected by the same limitation. A new
+-- command is thus introduced by this extension to address this problem by
+-- allowing the host to perform an image layout transition between a
+-- handful of layouts.
+--
+-- == Version History
+--
+-- -   Revision 0, 2021-01-20 (Faith Ekstrand)
+--
+--     -   Initial idea and xml
+--
+-- -   Revision 1, 2023-04-26 (Shahbaz Youssefi)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'CopyImageToImageInfoEXT', 'CopyImageToMemoryInfoEXT',
+-- 'CopyMemoryToImageInfoEXT', 'HostImageCopyDevicePerformanceQueryEXT',
+-- 'HostImageCopyFlagBitsEXT', 'HostImageCopyFlagsEXT',
+-- 'HostImageLayoutTransitionInfoEXT', 'ImageSubresource2EXT',
+-- 'ImageToMemoryCopyEXT', 'MemoryToImageCopyEXT',
+-- 'PhysicalDeviceHostImageCopyFeaturesEXT',
+-- 'PhysicalDeviceHostImageCopyPropertiesEXT',
+-- 'SubresourceHostMemcpySizeEXT', 'SubresourceLayout2EXT',
+-- 'copyImageToImageEXT', 'copyImageToMemoryEXT', 'copyMemoryToImageEXT',
+-- 'getImageSubresourceLayout2EXT', 'transitionImageLayoutEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_host_image_copy Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_host_image_copy  ( CopyImageToImageInfoEXT
+                                                 , CopyImageToMemoryInfoEXT
+                                                 , CopyMemoryToImageInfoEXT
+                                                 , HostImageCopyDevicePerformanceQueryEXT
+                                                 , HostImageLayoutTransitionInfoEXT
+                                                 , ImageToMemoryCopyEXT
+                                                 , MemoryToImageCopyEXT
+                                                 , PhysicalDeviceHostImageCopyFeaturesEXT
+                                                 , PhysicalDeviceHostImageCopyPropertiesEXT
+                                                 , SubresourceHostMemcpySizeEXT
+                                                 ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data CopyImageToImageInfoEXT
+
+instance ToCStruct CopyImageToImageInfoEXT
+instance Show CopyImageToImageInfoEXT
+
+instance FromCStruct CopyImageToImageInfoEXT
+
+
+data CopyImageToMemoryInfoEXT
+
+instance ToCStruct CopyImageToMemoryInfoEXT
+instance Show CopyImageToMemoryInfoEXT
+
+instance FromCStruct CopyImageToMemoryInfoEXT
+
+
+data CopyMemoryToImageInfoEXT
+
+instance ToCStruct CopyMemoryToImageInfoEXT
+instance Show CopyMemoryToImageInfoEXT
+
+instance FromCStruct CopyMemoryToImageInfoEXT
+
+
+data HostImageCopyDevicePerformanceQueryEXT
+
+instance ToCStruct HostImageCopyDevicePerformanceQueryEXT
+instance Show HostImageCopyDevicePerformanceQueryEXT
+
+instance FromCStruct HostImageCopyDevicePerformanceQueryEXT
+
+
+data HostImageLayoutTransitionInfoEXT
+
+instance ToCStruct HostImageLayoutTransitionInfoEXT
+instance Show HostImageLayoutTransitionInfoEXT
+
+instance FromCStruct HostImageLayoutTransitionInfoEXT
+
+
+data ImageToMemoryCopyEXT
+
+instance ToCStruct ImageToMemoryCopyEXT
+instance Show ImageToMemoryCopyEXT
+
+instance FromCStruct ImageToMemoryCopyEXT
+
+
+data MemoryToImageCopyEXT
+
+instance ToCStruct MemoryToImageCopyEXT
+instance Show MemoryToImageCopyEXT
+
+instance FromCStruct MemoryToImageCopyEXT
+
+
+data PhysicalDeviceHostImageCopyFeaturesEXT
+
+instance ToCStruct PhysicalDeviceHostImageCopyFeaturesEXT
+instance Show PhysicalDeviceHostImageCopyFeaturesEXT
+
+instance FromCStruct PhysicalDeviceHostImageCopyFeaturesEXT
+
+
+data PhysicalDeviceHostImageCopyPropertiesEXT
+
+instance ToCStruct PhysicalDeviceHostImageCopyPropertiesEXT
+instance Show PhysicalDeviceHostImageCopyPropertiesEXT
+
+instance FromCStruct PhysicalDeviceHostImageCopyPropertiesEXT
+
+
+data SubresourceHostMemcpySizeEXT
+
+instance ToCStruct SubresourceHostMemcpySizeEXT
+instance Show SubresourceHostMemcpySizeEXT
+
+instance FromCStruct SubresourceHostMemcpySizeEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs b/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs
--- a/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs
+++ b/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -64,13 +67,13 @@
 --
 -- == New Commands
 --
--- -   'getImageSubresourceLayout2EXT'
+-- -   'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT'
 --
 -- == New Structures
 --
--- -   'ImageSubresource2EXT'
+-- -   'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT'
 --
--- -   'SubresourceLayout2EXT'
+-- -   'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT'
 --
 -- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo',
 --     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
@@ -81,7 +84,7 @@
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',
 --     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',
---     'SubresourceLayout2EXT':
+--     'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR':
 --
 --     -   'ImageCompressionPropertiesEXT'
 --
@@ -119,11 +122,11 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT'
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT'
+--     -   'STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT'
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'
+--     -   'STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'
 --
 -- == Version History
 --
@@ -136,9 +139,10 @@
 -- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT',
 -- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT',
 -- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT',
--- 'ImageSubresource2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT',
 -- 'PhysicalDeviceImageCompressionControlFeaturesEXT',
--- 'SubresourceLayout2EXT', 'getImageSubresourceLayout2EXT'
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT'
 --
 -- == Document Notes
 --
@@ -147,12 +151,11 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_image_compression_control  ( getImageSubresourceLayout2EXT
+module Vulkan.Extensions.VK_EXT_image_compression_control  ( pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
+                                                           , pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
                                                            , ImageCompressionControlEXT(..)
                                                            , PhysicalDeviceImageCompressionControlFeaturesEXT(..)
                                                            , ImageCompressionPropertiesEXT(..)
-                                                           , ImageSubresource2EXT(..)
-                                                           , SubresourceLayout2EXT(..)
                                                            , ImageCompressionFlagsEXT
                                                            , ImageCompressionFlagBitsEXT( IMAGE_COMPRESSION_DEFAULT_EXT
                                                                                         , IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT
@@ -192,219 +195,65 @@
                                                            , pattern EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION
                                                            , EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME
                                                            , pattern EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME
+                                                           , ImageSubresource2KHR(..)
+                                                           , SubresourceLayout2KHR(..)
+                                                           , getImageSubresourceLayout2KHR
+                                                           , ImageSubresource2EXT
+                                                           , SubresourceLayout2EXT
+                                                           , getImageSubresourceLayout2EXT
                                                            ) where
 
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
-import Vulkan.Internal.Utils (traceAroundEvent)
-import Control.Monad (unless)
-import Control.Monad.IO.Class (liftIO)
-import Data.Typeable (eqT)
 import Foreign.Marshal.Alloc (allocaBytes)
-import GHC.IO (throwIO)
-import GHC.Ptr (castPtr)
-import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Cont (evalContT)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct (ToCStruct)
 import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Zero (Zero)
 import Vulkan.Zero (Zero(..))
-import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
-import Data.Type.Equality ((:~:)(Refl))
 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 GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Data.Word (Word32)
 import Data.Kind (Type)
-import Control.Monad.Trans.Cont (ContT(..))
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
-import Vulkan.CStruct.Extends (forgetExtensions)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct.Extends (Chain)
-import Vulkan.Core10.Handles (Device)
-import Vulkan.Core10.Handles (Device(..))
-import Vulkan.Core10.Handles (Device(Device))
-import Vulkan.Dynamic (DeviceCmds(pVkGetImageSubresourceLayout2EXT))
-import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct.Extends (Extends)
-import Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Core10.Handles (Image)
-import Vulkan.Core10.Handles (Image(..))
-import Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)
-import Vulkan.CStruct.Extends (PeekChain)
-import Vulkan.CStruct.Extends (PeekChain(..))
-import Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct.Extends (PokeChain(..))
-import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Core10.Image (SubresourceLayout)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetImageSubresourceLayout2EXT
-  :: FunPtr (Ptr Device_T -> Image -> Ptr ImageSubresource2EXT -> Ptr (SomeStruct SubresourceLayout2EXT) -> IO ()) -> Ptr Device_T -> Image -> Ptr ImageSubresource2EXT -> Ptr (SomeStruct SubresourceLayout2EXT) -> IO ()
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR))
+import Vulkan.Extensions.VK_EXT_host_image_copy (getImageSubresourceLayout2EXT)
+import Vulkan.Extensions.VK_KHR_maintenance5 (getImageSubresourceLayout2KHR)
+import Vulkan.Extensions.VK_EXT_host_image_copy (ImageSubresource2EXT)
+import Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR(..))
+import Vulkan.Extensions.VK_EXT_host_image_copy (SubresourceLayout2EXT)
+import Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR(..))
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"
+pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
 
--- | vkGetImageSubresourceLayout2EXT - Retrieve information about an image
--- subresource
---
--- = Description
---
--- 'getImageSubresourceLayout2EXT' behaves similarly to
--- 'Vulkan.Core10.Image.getImageSubresourceLayout', with the ability to
--- specify extended inputs via chained input structures, and to return
--- extended information via chained output structures.
---
--- It is legal to call 'getImageSubresourceLayout2EXT' with a @image@
--- created with @tiling@ equal to
--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', but the members
--- of 'ImageSubresource2EXT'::@imageSubresource@ will have undefined values
--- in this case.
---
--- Note
---
--- Structures chained from 'ImageSubresource2EXT'::@pNext@ will also be
--- updated when @tiling@ is equal to
--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.
---
--- == Valid Usage
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-aspectMask-00997# The
---     @aspectMask@ member of @pSubresource@ /must/ only have a single bit
---     set
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-mipLevel-01716# The @mipLevel@
---     member of @pSubresource@ /must/ be less than the @mipLevels@
---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was
---     created
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-arrayLayer-01717# The
---     @arrayLayer@ member of @pSubresource@ /must/ be less than the
---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
---     when @image@ was created
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-format-04461# If @format@ is a
---     color format, the @aspectMask@ member of @pSubresource@ /must/ be
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-format-04462# If @format@ has
---     a depth component, the @aspectMask@ member of @pSubresource@ /must/
---     contain
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-format-04463# If @format@ has
---     a stencil component, the @aspectMask@ member of @pSubresource@
---     /must/ contain
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-format-04464# If @format@ does
---     not contain a stencil or depth component, the @aspectMask@ member of
---     @pSubresource@ /must/ not contain
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-tiling-08717# If the @tiling@
---     of the @image@ is
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and has a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
---     then the @aspectMask@ member of @pSubresource@ /must/ be a single
---     valid
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-image-01895# If @image@ was
---     created with the
---     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
---     external memory handle type, then @image@ /must/ be bound to memory
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-tiling-02271# If the @tiling@
---     of the @image@ is
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
---     then the @aspectMask@ member of @pSubresource@ /must/ be
---     @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be
---     less than the
---     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@
---     associated with the image’s @format@ and
---     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-device-parameter# @device@
---     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-image-parameter# @image@
---     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameter#
---     @pSubresource@ /must/ be a valid pointer to a valid
---     'ImageSubresource2EXT' structure
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameter# @pLayout@
---     /must/ be a valid pointer to a 'SubresourceLayout2EXT' structure
---
--- -   #VUID-vkGetImageSubresourceLayout2EXT-image-parent# @image@ /must/
---     have been created, allocated, or retrieved from @device@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,
--- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Image',
--- 'ImageSubresource2EXT', 'SubresourceLayout2EXT'
-getImageSubresourceLayout2EXT :: forall a io
-                               . ( Extendss SubresourceLayout2EXT a
-                                 , PokeChain a
-                                 , PeekChain a
-                                 , MonadIO io )
-                              => -- | @device@ is the logical device that owns the image.
-                                 Device
-                              -> -- | @image@ is the image whose layout is being queried.
-                                 Image
-                              -> -- | @pSubresource@ is a pointer to a 'ImageSubresource2EXT' structure
-                                 -- selecting a specific image for the image subresource.
-                                 ImageSubresource2EXT
-                              -> io (SubresourceLayout2EXT a)
-getImageSubresourceLayout2EXT device image subresource = liftIO . evalContT $ do
-  let vkGetImageSubresourceLayout2EXTPtr = pVkGetImageSubresourceLayout2EXT (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkGetImageSubresourceLayout2EXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageSubresourceLayout2EXT is null" Nothing Nothing
-  let vkGetImageSubresourceLayout2EXT' = mkVkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXTPtr
-  pSubresource <- ContT $ withCStruct (subresource)
-  pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2EXT _))
-  lift $ traceAroundEvent "vkGetImageSubresourceLayout2EXT" (vkGetImageSubresourceLayout2EXT'
-                                                               (deviceHandle (device))
-                                                               (image)
-                                                               pSubresource
-                                                               (forgetExtensions (pPLayout)))
-  pLayout <- lift $ peekCStruct @(SubresourceLayout2EXT _) pPLayout
-  pure $ (pLayout)
 
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"
+pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
 
+
 -- | VkImageCompressionControlEXT - Specify image compression properties
 --
 -- = Description
@@ -633,137 +482,6 @@
 instance Zero ImageCompressionPropertiesEXT where
   zero = ImageCompressionPropertiesEXT
            zero
-           zero
-
-
--- | VkImageSubresource2EXT - Structure specifying an image subresource
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,
--- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'getImageSubresourceLayout2EXT'
-data ImageSubresource2EXT = ImageSubresource2EXT
-  { -- | @imageSubresource@ is a
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'
-    -- structure.
-    --
-    -- #VUID-VkImageSubresource2EXT-imageSubresource-parameter#
-    -- @imageSubresource@ /must/ be a valid
-    -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'
-    -- structure
-    imageSubresource :: ImageSubresource }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (ImageSubresource2EXT)
-#endif
-deriving instance Show ImageSubresource2EXT
-
-instance ToCStruct ImageSubresource2EXT where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p ImageSubresource2EXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (imageSubresource)
-    f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (zero)
-    f
-
-instance FromCStruct ImageSubresource2EXT where
-  peekCStruct p = do
-    imageSubresource <- peekCStruct @ImageSubresource ((p `plusPtr` 16 :: Ptr ImageSubresource))
-    pure $ ImageSubresource2EXT
-             imageSubresource
-
-instance Storable ImageSubresource2EXT where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero ImageSubresource2EXT where
-  zero = ImageSubresource2EXT
-           zero
-
-
--- | VkSubresourceLayout2EXT - Structure specifying subresource layout
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkSubresourceLayout2EXT-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'
---
--- -   #VUID-VkSubresourceLayout2EXT-pNext-pNext# @pNext@ /must/ be @NULL@
---     or a pointer to a valid instance of 'ImageCompressionPropertiesEXT'
---
--- -   #VUID-VkSubresourceLayout2EXT-sType-unique# The @sType@ value of
---     each struct in the @pNext@ chain /must/ be unique
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'Vulkan.Core10.Image.SubresourceLayout', 'getImageSubresourceLayout2EXT'
-data SubresourceLayout2EXT (es :: [Type]) = SubresourceLayout2EXT
-  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
-    next :: Chain es
-  , -- | @subresourceLayout@ is a 'Vulkan.Core10.Image.SubresourceLayout'
-    -- structure.
-    subresourceLayout :: SubresourceLayout
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (SubresourceLayout2EXT (es :: [Type]))
-#endif
-deriving instance Show (Chain es) => Show (SubresourceLayout2EXT es)
-
-instance Extensible SubresourceLayout2EXT where
-  extensibleTypeName = "SubresourceLayout2EXT"
-  setNext SubresourceLayout2EXT{..} next' = SubresourceLayout2EXT{next = next', ..}
-  getNext SubresourceLayout2EXT{..} = next
-  extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubresourceLayout2EXT e => b) -> Maybe b
-  extends _ f
-    | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f
-    | otherwise = Nothing
-
-instance ( Extendss SubresourceLayout2EXT es
-         , PokeChain es ) => ToCStruct (SubresourceLayout2EXT es) where
-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p SubresourceLayout2EXT{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT)
-    pNext'' <- fmap castPtr . ContT $ withChain (next)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
-    lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (subresourceLayout)
-    lift $ f
-  cStructSize = 56
-  cStructAlignment = 8
-  pokeZeroCStruct p f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT)
-    pNext' <- fmap castPtr . ContT $ withZeroChain @es
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (zero)
-    lift $ f
-
-instance ( Extendss SubresourceLayout2EXT es
-         , PeekChain es ) => FromCStruct (SubresourceLayout2EXT es) where
-  peekCStruct p = do
-    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
-    next <- peekChain (castPtr pNext)
-    subresourceLayout <- peekCStruct @SubresourceLayout ((p `plusPtr` 16 :: Ptr SubresourceLayout))
-    pure $ SubresourceLayout2EXT
-             next subresourceLayout
-
-instance es ~ '[] => Zero (SubresourceLayout2EXT es) where
-  zero = SubresourceLayout2EXT
-           ()
            zero
 
 
diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -64,13 +67,13 @@
 --
 -- == New Commands
 --
--- -   'getImageSubresourceLayout2EXT'
+-- -   'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT'
 --
 -- == New Structures
 --
--- -   'ImageSubresource2EXT'
+-- -   'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT'
 --
--- -   'SubresourceLayout2EXT'
+-- -   'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT'
 --
 -- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo',
 --     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
@@ -81,7 +84,7 @@
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',
 --     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',
---     'SubresourceLayout2EXT':
+--     'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR':
 --
 --     -   'ImageCompressionPropertiesEXT'
 --
@@ -119,11 +122,11 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT'
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT'
+--     -   'STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT'
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'
+--     -   'STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'
 --
 -- == Version History
 --
@@ -136,9 +139,10 @@
 -- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT',
 -- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT',
 -- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT',
--- 'ImageSubresource2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT',
 -- 'PhysicalDeviceImageCompressionControlFeaturesEXT',
--- 'SubresourceLayout2EXT', 'getImageSubresourceLayout2EXT'
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT'
 --
 -- == Document Notes
 --
@@ -149,18 +153,13 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_image_compression_control  ( ImageCompressionControlEXT
                                                            , ImageCompressionPropertiesEXT
-                                                           , ImageSubresource2EXT
                                                            , PhysicalDeviceImageCompressionControlFeaturesEXT
-                                                           , SubresourceLayout2EXT
                                                            ) where
 
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
-import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
-import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
-import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
+
 data ImageCompressionControlEXT
 
 instance ToCStruct ImageCompressionControlEXT
@@ -177,29 +176,10 @@
 instance FromCStruct ImageCompressionPropertiesEXT
 
 
-data ImageSubresource2EXT
-
-instance ToCStruct ImageSubresource2EXT
-instance Show ImageSubresource2EXT
-
-instance FromCStruct ImageSubresource2EXT
-
-
 data PhysicalDeviceImageCompressionControlFeaturesEXT
 
 instance ToCStruct PhysicalDeviceImageCompressionControlFeaturesEXT
 instance Show PhysicalDeviceImageCompressionControlFeaturesEXT
 
 instance FromCStruct PhysicalDeviceImageCompressionControlFeaturesEXT
-
-
-type role SubresourceLayout2EXT nominal
-data SubresourceLayout2EXT (es :: [Type])
-
-instance ( Extendss SubresourceLayout2EXT es
-         , PokeChain es ) => ToCStruct (SubresourceLayout2EXT es)
-instance Show (Chain es) => Show (SubresourceLayout2EXT es)
-
-instance ( Extendss SubresourceLayout2EXT es
-         , PeekChain es ) => FromCStruct (SubresourceLayout2EXT es)
 
diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --             
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_bind_memory2 VK_KHR_bind_memory2>
@@ -150,7 +153,7 @@
 -- accurately map the DRM format to a 'Vulkan.Core10.Enums.Format.Format'.
 -- For example, DRM formats do not distinguish between RGB and sRGB (as of
 -- 2018-03-28); external information is required to identify the image’s
--- colorspace.
+-- color space.
 --
 -- The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format
 -- is also incomplete. For some DRM formats there exist no corresponding
@@ -1140,9 +1143,12 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT'
 --
 -- -   #VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter#
---     If @drmFormatModifierPlaneCount@ is not @0@, @pPlaneLayouts@ /must/
---     be a valid pointer to an array of @drmFormatModifierPlaneCount@
+--     @pPlaneLayouts@ /must/ be a valid pointer to an array of
+--     @drmFormatModifierPlaneCount@
 --     'Vulkan.Core10.Image.SubresourceLayout' structures
+--
+-- -   #VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylength#
+--     @drmFormatModifierPlaneCount@ /must/ be greater than @0@
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --             
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_bind_memory2 VK_KHR_bind_memory2>
@@ -150,7 +153,7 @@
 -- accurately map the DRM format to a 'Vulkan.Core10.Enums.Format.Format'.
 -- For example, DRM formats do not distinguish between RGB and sRGB (as of
 -- 2018-03-28); external information is required to identify the image’s
--- colorspace.
+-- color space.
 --
 -- The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format
 -- is also incomplete. For some DRM formats there exist no corresponding
diff --git a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
 --     and
@@ -162,7 +165,7 @@
 -- The effective view depth is equal to @extent.depth@ used to create the
 -- @image@ for this view adjusted by @subresourceRange.baseMipLevel@ as
 -- specified in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>.
 --
 -- Shader access to this image view is only affected by
 -- 'ImageViewSlicedCreateInfoEXT' if it uses a descriptor of type
@@ -177,14 +180,14 @@
 -- -   #VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867#
 --     @sliceOffset@ /must/ be less than the effective view depth as
 --     specified in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>
 --
 -- -   #VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868# If
 --     @sliceCount@ is not
 --     'Vulkan.Core10.APIConstants.REMAINING_3D_SLICES_EXT', it /must/ be
 --     be non-zero and @sliceOffset@ + @sliceCount@ /must/ be less than or
 --     equal to the effective view depth as specified in
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>
 --
 -- -   #VUID-VkImageViewSlicedCreateInfoEXT-image-07869# @image@ /must/
 --     have been created with @imageType@ equal to
diff --git a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -140,7 +143,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT))
 -- | VkPhysicalDeviceImageViewMinLodFeaturesEXT - Structure describing
--- whether clamping the min lod of a image view is supported by the
+-- whether clamping the min LOD of a image view is supported by the
 -- implementation
 --
 -- = Members
@@ -214,7 +217,7 @@
            zero
 
 
--- | VkImageViewMinLodCreateInfoEXT - Structure describing the minimum lod of
+-- | VkImageViewMinLodCreateInfoEXT - Structure describing the minimum LOD of
 -- an image view
 --
 -- = Description
diff --git a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs
--- a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs
+++ b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -141,6 +144,7 @@
 data PhysicalDeviceIndexTypeUint8FeaturesEXT = PhysicalDeviceIndexTypeUint8FeaturesEXT
   { -- | #features-indexTypeUint8# @indexTypeUint8@ indicates that
     -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' can be used with
+    -- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and
     -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
     indexTypeUint8 :: Bool }
   deriving (Typeable, Eq)
diff --git a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs
--- a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs
+++ b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs
--- a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs
+++ b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
--- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -101,14 +104,14 @@
 --
 -- == Issues
 --
--- > (1) Do we need to support Bresenham-style and smooth lines with more than
--- > one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE)
--- > in OpenGL when the framebuffer has more than one sample?
+-- 1) Do we need to support Bresenham-style and smooth lines with more than
+-- one rasterization sample? i.e. the equivalent of
+-- glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than
+-- one sample?
 --
--- > RESOLVED: Yes.
--- > For simplicity, Bresenham line rasterization carries forward a few
--- > restrictions from OpenGL, such as not supporting per-sample shading, alpha
--- > to coverage, or alpha to one.
+-- __RESOLVED__: Yes. For simplicity, Bresenham line rasterization carries
+-- forward a few restrictions from OpenGL, such as not supporting
+-- per-sample shading, alpha to coverage, or alpha to one.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -101,14 +104,14 @@
 --
 -- == Issues
 --
--- > (1) Do we need to support Bresenham-style and smooth lines with more than
--- > one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE)
--- > in OpenGL when the framebuffer has more than one sample?
+-- 1) Do we need to support Bresenham-style and smooth lines with more than
+-- one rasterization sample? i.e. the equivalent of
+-- glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than
+-- one sample?
 --
--- > RESOLVED: Yes.
--- > For simplicity, Bresenham line rasterization carries forward a few
--- > restrictions from OpenGL, such as not supporting per-sample shading, alpha
--- > to coverage, or alpha to one.
+-- __RESOLVED__: Yes. For simplicity, Bresenham line rasterization carries
+-- forward a few restrictions from OpenGL, such as not supporting
+-- per-sample shading, alpha to coverage, or alpha to one.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs b/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs
--- a/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs
+++ b/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Shahbaz Youssefi
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs
--- a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs
+++ b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs
--- a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs
+++ b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs
--- a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs
+++ b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs
@@ -17,9670 +17,11510 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
---
--- [__Contact__]
---
---     -   Christoph Kubisch
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_mesh_shader] @pixeljetstream%0A*Here describe the issue or question you have about the VK_EXT_mesh_shader extension* >
---
--- [__Extension Proposal__]
---     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_mesh_shader.adoc VK_EXT_mesh_shader>
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2022-01-20
---
--- [__Interactions and External Dependencies__]
---
---     -   This extension requires
---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
---
---     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_mesh_shader.txt GLSL_EXT_mesh_shader>
---
---     -   Interacts with Vulkan 1.1
---
---     -   Interacts with @VK_KHR_multiview@
---
---     -   Interacts with @VK_KHR_fragment_shading_rate@
---
--- [__Contributors__]
---
---     -   Christoph Kubisch, NVIDIA
---
---     -   Pat Brown, NVIDIA
---
---     -   Jeff Bolz, NVIDIA
---
---     -   Daniel Koch, NVIDIA
---
---     -   Piers Daniell, NVIDIA
---
---     -   Pierre Boudier, NVIDIA
---
---     -   Patrick Mours, NVIDIA
---
---     -   David Zhao Akeley, NVIDIA
---
---     -   Kedarnath Thangudu, NVIDIA
---
---     -   Timur Kristóf, Valve
---
---     -   Hans-Kristian Arntzen, Valve
---
---     -   Philip Rebohle, Valve
---
---     -   Mike Blumenkrantz, Valve
---
---     -   Slawomir Grajewski, Intel
---
---     -   Michal Pietrasiuk, Intel
---
---     -   Mariusz Merecki, Intel
---
---     -   Tom Olson, ARM
---
---     -   Jan-Harald Fredriksen, ARM
---
---     -   Sandeep Kakarlapudi, ARM
---
---     -   Ruihao Zhang, QUALCOMM
---
---     -   Ricardo Garcia, Igalia, S.L.
---
---     -   Tobias Hector, AMD
---
---     -   Stu Smith, AMD
---
--- == Description
---
--- This extension provides a new mechanism allowing applications to
--- generate collections of geometric primitives via programmable mesh
--- shading. It is an alternative to the existing programmable primitive
--- shading pipeline, which relied on generating input primitives by a fixed
--- function assembler as well as fixed function vertex fetch.
---
--- This extension also adds support for the following SPIR-V extension in
--- Vulkan:
---
--- -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
---
--- == New Commands
---
--- -   'cmdDrawMeshTasksEXT'
---
--- -   'cmdDrawMeshTasksIndirectCountEXT'
---
--- -   'cmdDrawMeshTasksIndirectEXT'
---
--- == New Structures
---
--- -   'DrawMeshTasksIndirectCommandEXT'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceMeshShaderFeaturesEXT'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
---
---     -   'PhysicalDeviceMeshShaderPropertiesEXT'
---
--- == New Enum Constants
---
--- -   'EXT_MESH_SHADER_EXTENSION_NAME'
---
--- -   'EXT_MESH_SHADER_SPEC_VERSION'
---
--- -   Extending
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
---
---     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
---
--- -   Extending
---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits':
---
---     -   'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'
---
---     -   'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'
---
--- -   Extending 'Vulkan.Core10.Enums.QueryType.QueryType':
---
---     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
---
--- -   Extending
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':
---
---     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
---     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT'
---
--- If
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
--- is supported:
---
--- -   Extending
---     'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV':
---
---     -   'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV'
---
--- == New or Modified Built-In Variables
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-cullprimitive CullPrimitiveEXT>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivepointindices PrimitivePointIndicesEXT>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivelineindices PrimitiveLineIndicesEXT>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivetriangleindices PrimitiveTriangleIndicesEXT>
---
--- -   (modified)@Position@
---
--- -   (modified)@PointSize@
---
--- -   (modified)@ClipDistance@
---
--- -   (modified)@CullDistance@
---
--- -   (modified)@PrimitiveId@
---
--- -   (modified)@Layer@
---
--- -   (modified)@ViewportIndex@
---
--- -   (modified)@NumWorkgroups@
---
--- -   (modified)@WorkgroupSize@
---
--- -   (modified)@WorkgroupId@
---
--- -   (modified)@LocalInvocationId@
---
--- -   (modified)@GlobalInvocationId@
---
--- -   (modified)@LocalInvocationIndex@
---
--- -   (modified)@NumSubgroups@
---
--- -   (modified)@SubgroupId@
---
--- -   (modified)@DrawIndex@
---
--- -   (modified)@PrimitiveShadingRateKHR@
---
--- -   (modified)@ViewIndex@
---
--- == New SPIR-V Capability
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingEXT MeshShadingEXT>
---
--- == Version History
---
--- -   Revision 1, 2022-03-08 (Christoph Kubisch, Daniel Koch, Patrick
---     Mours)
---
---     -   Initial revision
---
--- == See Also
---
--- 'DrawMeshTasksIndirectCommandEXT',
--- 'PhysicalDeviceMeshShaderFeaturesEXT',
--- 'PhysicalDeviceMeshShaderPropertiesEXT', 'cmdDrawMeshTasksEXT',
--- 'cmdDrawMeshTasksIndirectCountEXT', 'cmdDrawMeshTasksIndirectEXT'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_mesh_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_EXT_mesh_shader  ( cmdDrawMeshTasksEXT
-                                             , cmdDrawMeshTasksIndirectEXT
-                                             , cmdDrawMeshTasksIndirectCountEXT
-                                             , PhysicalDeviceMeshShaderFeaturesEXT(..)
-                                             , PhysicalDeviceMeshShaderPropertiesEXT(..)
-                                             , DrawMeshTasksIndirectCommandEXT(..)
-                                             , EXT_MESH_SHADER_SPEC_VERSION
-                                             , pattern EXT_MESH_SHADER_SPEC_VERSION
-                                             , EXT_MESH_SHADER_EXTENSION_NAME
-                                             , pattern EXT_MESH_SHADER_EXTENSION_NAME
-                                             , IndirectCommandsTokenTypeNV(..)
-                                             ) 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(pVkCmdDrawMeshTasksEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectCountEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectEXT))
-import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT))
-import Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsTokenTypeNV(..))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMeshTasksEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMeshTasksEXT - Draw mesh task work items
---
--- = Description
---
--- When the command is executed, a global workgroup consisting of
--- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is
--- assembled.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08601# For each push constant that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08608# If a pipeline is bound to
---     the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksEXT-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksEXT-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksEXT-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMeshTasksEXT-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksEXT-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08617# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08618# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08619# If a shader object that
---     outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08620# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08621# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08622# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08623# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08624# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08625# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08626# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08627# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08628# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08629# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08630# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08631# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08632# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08633# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08634# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08635# If a shader object is bound
---     to any graphics stage, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08636# If a shader object is bound
---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08637# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08638# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08639# If a shader object is bound
---     to any graphics stage, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08640# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08641# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08643# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08644# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksEXT-pNext-07935# If this command has been
---     called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08651# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08652# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08653# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08654# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08657# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08658# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08659# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08698# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08699# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08716# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-TaskEXT-07322# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountX@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountY@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountZ@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@, The
---     product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be
---     less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountX@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0]
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountY@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1]
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountZ@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2]
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329# If the current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     The product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/
---     be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupTotalCount@
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087# The current pipeline
---     bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     /must/ contain a shader stage using the @MeshEXT@ @Execution@
---     @Model@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksEXT-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_EXT_mesh_shader VK_EXT_mesh_shader>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdDrawMeshTasksEXT :: 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 ()
-cmdDrawMeshTasksEXT commandBuffer
-                      groupCountX
-                      groupCountY
-                      groupCountZ = liftIO $ do
-  let vkCmdDrawMeshTasksEXTPtr = pVkCmdDrawMeshTasksEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawMeshTasksEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksEXT is null" Nothing Nothing
-  let vkCmdDrawMeshTasksEXT' = mkVkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXTPtr
-  traceAroundEvent "vkCmdDrawMeshTasksEXT" (vkCmdDrawMeshTasksEXT'
-                                              (commandBufferHandle (commandBuffer))
-                                              (groupCountX)
-                                              (groupCountY)
-                                              (groupCountZ))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMeshTasksIndirectEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a
--- command buffer
---
--- = Description
---
--- 'cmdDrawMeshTasksIndirectEXT' behaves similarly to 'cmdDrawMeshTasksEXT'
--- except that the parameters are read by the device from a buffer during
--- execution. @drawCount@ draws are executed by the command, with
--- parameters taken from @buffer@ starting at @offset@ and increasing by
--- @stride@ bytes for each successive draw. The parameters of each draw are
--- encoded in an array of 'DrawMeshTasksIndirectCommandEXT' structures. If
--- @drawCount@ is less than or equal to one, @stride@ is ignored.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08600# For each set /n/
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608# If a pipeline is
---     bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectEXT-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectEXT-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectEXT-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07831# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619# If a shader object
---     that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08624# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08625# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08626# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08633# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08634# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08635# If a shader object
---     is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08636# If a shader object
---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08637# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07878# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08639# If a shader object
---     is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08640# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08641# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08643# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07880# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectEXT-pNext-07935# If this command has
---     been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08651# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08652# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08653# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08654# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08657# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08658# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08659# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08716# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-buffer-02708# If @buffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709# @buffer@ /must/
---     have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710# @offset@ /must/ be
---     a multiple of @4@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719# @drawCount@
---     /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088# If @drawCount@
---     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/
---     be greater than or equal to
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089# If @drawCount@
---     is equal to @1@, (@offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090# If @drawCount@
---     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091# The current
---     pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     /must/ contain a shader stage using the @MeshEXT@ @Execution@
---     @Model@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter# @buffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass# This command /must/
---     only be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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_EXT_mesh_shader VK_EXT_mesh_shader>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawMeshTasksIndirectEXT :: 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)
-                            -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
-                               ("drawCount" ::: Word32)
-                            -> -- | @stride@ is the byte stride between successive sets of draw parameters.
-                               ("stride" ::: Word32)
-                            -> io ()
-cmdDrawMeshTasksIndirectEXT commandBuffer
-                              buffer
-                              offset
-                              drawCount
-                              stride = liftIO $ do
-  let vkCmdDrawMeshTasksIndirectEXTPtr = pVkCmdDrawMeshTasksIndirectEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawMeshTasksIndirectEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectEXT is null" Nothing Nothing
-  let vkCmdDrawMeshTasksIndirectEXT' = mkVkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXTPtr
-  traceAroundEvent "vkCmdDrawMeshTasksIndirectEXT" (vkCmdDrawMeshTasksIndirectEXT'
-                                                      (commandBufferHandle (commandBuffer))
-                                                      (buffer)
-                                                      (offset)
-                                                      (drawCount)
-                                                      (stride))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMeshTasksIndirectCountEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw
--- with the draw count sourced from a buffer
---
--- = Description
---
--- 'cmdDrawMeshTasksIndirectCountEXT' behaves similarly to
--- 'cmdDrawMeshTasksIndirectEXT' except that the draw count is read by the
--- device from a buffer during execution. The command will read an unsigned
--- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use
--- this as the draw count.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08600# For each set
---     /n/ that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08604# Descriptors in
---     bound descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08605# If a descriptor
---     is dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608# If a pipeline
---     is bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectCountEXT-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountEXT-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountEXT-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07831# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618# If a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619# If a shader
---     object that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621# If a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08624# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08625# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08626# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632# If a shader
---     object is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08633# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08634# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08635# If a shader
---     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08636# If a shader
---     object is bound to any graphics stage, and the
---     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,
---     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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08637# If a shader
---     object is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07878# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08639# If a shader
---     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08640# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08641# If a shader
---     object is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08643# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07880# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935# If this
---     command has been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08651# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08652# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08653# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08654# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08657# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08658# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08659# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07850# If dynamic
---     state was inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08685# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08686# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08687# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08688# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08689# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08690# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08693# If there is no
---     bound graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696# If there is no
---     bound graphics pipeline, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715# If
---     the bound graphics pipeline state includes a fragment shader stage,
---     was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08716# If
---     the bound graphics pipeline state includes a fragment shader stage,
---     was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708# If @buffer@
---     is non-sparse then it /must/ be bound completely and contiguously to
---     a single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709# @buffer@
---     /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710# @offset@
---     /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714# If
---     @countBuffer@ is non-sparse then it /must/ be bound completely and
---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715#
---     @countBuffer@ /must/ have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716#
---     @countBufferOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717# The
---     count stored in @countBuffer@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129#
---     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
---     equal to the size of @countBuffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445# If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
---     is not enabled this function /must/ not be used
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096# @stride@
---     /must/ be a multiple of @4@ and /must/ be greater than or equal to
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097# If
---     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×
---     (@maxDrawCount@ - 1) + @offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098# If the
---     count stored in @countBuffer@ is equal to @1@, (@offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099# If the
---     count stored in @countBuffer@ is greater than @1@, (@stride@ ×
---     (@drawCount@ - 1) + @offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100# The current
---     pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     /must/ contain a shader stage using the @MeshEXT@ @Execution@
---     @Model@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter# @buffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter#
---     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
---     handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass# This command
---     /must/ only be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding# This command
---     /must/ only be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent# Each of
---     @buffer@, @commandBuffer@, and @countBuffer@ /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_EXT_mesh_shader VK_EXT_mesh_shader>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawMeshTasksIndirectCountEXT :: 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)
-                                 -> -- | @countBuffer@ is the buffer containing the draw count.
-                                    ("countBuffer" ::: Buffer)
-                                 -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw
-                                    -- count begins.
-                                    ("countBufferOffset" ::: DeviceSize)
-                                 -> -- | @maxDrawCount@ specifies the maximum number of draws that will be
-                                    -- executed. The actual number of executed draw calls is the minimum of the
-                                    -- count specified in @countBuffer@ and @maxDrawCount@.
-                                    ("maxDrawCount" ::: Word32)
-                                 -> -- | @stride@ is the byte stride between successive sets of draw parameters.
-                                    ("stride" ::: Word32)
-                                 -> io ()
-cmdDrawMeshTasksIndirectCountEXT commandBuffer
-                                   buffer
-                                   offset
-                                   countBuffer
-                                   countBufferOffset
-                                   maxDrawCount
-                                   stride = liftIO $ do
-  let vkCmdDrawMeshTasksIndirectCountEXTPtr = pVkCmdDrawMeshTasksIndirectCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawMeshTasksIndirectCountEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountEXT is null" Nothing Nothing
-  let vkCmdDrawMeshTasksIndirectCountEXT' = mkVkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXTPtr
-  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountEXT" (vkCmdDrawMeshTasksIndirectCountEXT'
-                                                           (commandBufferHandle (commandBuffer))
-                                                           (buffer)
-                                                           (offset)
-                                                           (countBuffer)
-                                                           (countBufferOffset)
-                                                           (maxDrawCount)
-                                                           (stride))
-  pure $ ()
-
-
--- | VkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh
--- shading features that can be supported by an implementation
---
--- = Description
---
--- If the 'PhysicalDeviceMeshShaderFeaturesEXT' 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. 'PhysicalDeviceMeshShaderFeaturesEXT' /can/ also be used in
--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to
--- selectively enable these features.
---
--- The corresponding features of the
--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV'
--- structure /must/ match those in 'PhysicalDeviceMeshShaderFeaturesEXT'.
---
--- == Valid Usage
---
--- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032#
---     If @multiviewMeshShader@ is enabled then
---     'Vulkan.Extensions.VK_KHR_multiview.PhysicalDeviceMultiviewFeaturesKHR'::@multiview@
---     /must/ also be enabled
---
--- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033#
---     If @primitiveFragmentShadingRateMeshShader@ is enabled then
---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR'::@primitiveFragmentShadingRate@
---     /must/ also be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceMeshShaderFeaturesEXT = PhysicalDeviceMeshShaderFeaturesEXT
-  { -- | #features-taskShader# @taskShader@ specifies whether task shaders are
-    -- supported. If this feature is not enabled, the
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' and
-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
-    -- enum values /must/ not be used.
-    taskShader :: Bool
-  , -- | #features-meshShader# @meshShader@ specifies whether mesh shaders are
-    -- supported. If this feature is not enabled, the
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' and
-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
-    -- enum values /must/ not be used.
-    meshShader :: Bool
-  , -- | #features-multiview-mesh# @multiviewMeshShader@ specifies whether the
-    -- implementation supports
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>
-    -- rendering within a render pass, with mesh shaders. If this feature is
-    -- not enabled, then a pipeline compiled against a subpass with a non-zero
-    -- view mask /must/ not include a mesh shader.
-    multiviewMeshShader :: Bool
-  , -- | #features-primitiveFragmentShadingRate-mesh#
-    -- @primitiveFragmentShadingRateMeshShader@ indicates that the
-    -- implementation supports the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>
-    -- in mesh shaders.
-    primitiveFragmentShadingRateMeshShader :: Bool
-  , -- | #features-meshShaderQueries# @meshShaderQueries@ indicates that the
-    -- implementation supports creating query pools using the
-    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
-    -- query type and statistic queries containing the
-    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'
-    -- and
-    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'
-    -- flags
-    meshShaderQueries :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceMeshShaderFeaturesEXT)
-#endif
-deriving instance Show PhysicalDeviceMeshShaderFeaturesEXT
-
-instance ToCStruct PhysicalDeviceMeshShaderFeaturesEXT where
-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceMeshShaderFeaturesEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (multiviewMeshShader))
-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRateMeshShader))
-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (meshShaderQueries))
-    f
-  cStructSize = 40
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PhysicalDeviceMeshShaderFeaturesEXT where
-  peekCStruct p = do
-    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    multiviewMeshShader <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
-    primitiveFragmentShadingRateMeshShader <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
-    meshShaderQueries <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
-    pure $ PhysicalDeviceMeshShaderFeaturesEXT
-             (bool32ToBool taskShader)
-             (bool32ToBool meshShader)
-             (bool32ToBool multiviewMeshShader)
-             (bool32ToBool primitiveFragmentShadingRateMeshShader)
-             (bool32ToBool meshShaderQueries)
-
-instance Storable PhysicalDeviceMeshShaderFeaturesEXT where
-  sizeOf ~_ = 40
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceMeshShaderFeaturesEXT where
-  zero = PhysicalDeviceMeshShaderFeaturesEXT
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh
--- shading properties
---
--- = Members
---
--- The members of the 'PhysicalDeviceMeshShaderPropertiesEXT' structure
--- describe the following implementation-dependent limits:
---
--- = Description
---
--- If the 'PhysicalDeviceMeshShaderPropertiesEXT' structure is included in
--- the @pNext@ chain of
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
--- it is filled with the implementation-dependent limits.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceMeshShaderPropertiesEXT = PhysicalDeviceMeshShaderPropertiesEXT
-  { -- | #limits-maxTaskWorkGroupTotalCount# @maxTaskWorkGroupTotalCount@ is the
-    -- maximum number of total local workgroups that /can/ be launched by a
-    -- single mesh tasks drawing command. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.
-    maxTaskWorkGroupTotalCount :: Word32
-  , -- | #limits-maxTaskWorkGroupCount# @maxTaskWorkGroupCount@[3] is the maximum
-    -- number of local workgroups that /can/ be launched by a single mesh tasks
-    -- drawing command. These three values represent the maximum number of
-    -- local workgroups for the X, Y, and Z dimensions, respectively. The
-    -- workgroup count parameters to the drawing commands /must/ be less than
-    -- or equal to the corresponding limit. The product of these dimensions
-    -- /must/ be less than or equal to @maxTaskWorkGroupTotalCount@.
-    maxTaskWorkGroupCount :: (Word32, Word32, Word32)
-  , -- | #limits-maxTaskWorkGroupInvocations# @maxTaskWorkGroupInvocations@ is
-    -- the maximum total number of task shader invocations in a single local
-    -- workgroup. The product of the X, Y, and Z sizes, as specified by the
-    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the
-    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than
-    -- or equal to this limit.
-    maxTaskWorkGroupInvocations :: Word32
-  , -- | #limits-maxTaskWorkGroupSize# @maxTaskWorkGroupSize@[3] is the maximum
-    -- size of a local task workgroup, per dimension. These three values
-    -- represent the maximum local workgroup size in the X, Y, and Z
-    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, 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.
-    maxTaskWorkGroupSize :: (Word32, Word32, Word32)
-  , -- | #limits-maxTaskPayloadSize# @maxTaskPayloadSize@ is the maximum total
-    -- storage size, in bytes, available for variables declared with the
-    -- @TaskPayloadWorkgroupEXT@ storage class in shader modules in the task
-    -- shader stage.
-    maxTaskPayloadSize :: Word32
-  , -- | #limits-maxTaskSharedMemorySize# @maxTaskSharedMemorySize@ is the
-    -- maximum total storage size, in bytes, available for variables declared
-    -- with the @Workgroup@ storage class in shader modules in the task shader
-    -- stage.
-    maxTaskSharedMemorySize :: Word32
-  , -- | #limits-maxTaskPayloadAndSharedMemorySize#
-    -- @maxTaskPayloadAndSharedMemorySize@ is the maximum total storage size,
-    -- in bytes, available for variables that are declared with the
-    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class, in shader
-    -- modules in the task shader stage.
-    maxTaskPayloadAndSharedMemorySize :: Word32
-  , -- | #limits-maxMeshWorkGroupTotalCount# @maxMeshWorkGroupTotalCount@ is the
-    -- maximum number of local output tasks a single task shader workgroup can
-    -- emit.
-    maxMeshWorkGroupTotalCount :: Word32
-  , -- | #limits-maxMeshWorkGroupCount# @maxMeshWorkGroupCount@[3] is the maximum
-    -- number of local output tasks a single task shader workgroup can emit,
-    -- per dimension. These three values represent the maximum number of local
-    -- output tasks for the X, Y, and Z dimensions, respectively. The workgroup
-    -- count parameters to the @OpEmitMeshTasksEXT@ /must/ be less than or
-    -- equal to the corresponding limit. The product of these dimensions /must/
-    -- be less than or equal to @maxMeshWorkGroupTotalCount@.
-    maxMeshWorkGroupCount :: (Word32, Word32, Word32)
-  , -- | #limits-maxMeshWorkGroupInvocations# @maxMeshWorkGroupInvocations@ is
-    -- the maximum total number of mesh shader invocations in a single local
-    -- workgroup. The product of the X, Y, and Z sizes, as specified by the
-    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the
-    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than
-    -- or equal to this limit.
-    maxMeshWorkGroupInvocations :: Word32
-  , -- | #limits-maxMeshWorkGroupSize# @maxMeshWorkGroupSize@[3] is the maximum
-    -- size of a local mesh workgroup, per dimension. These three values
-    -- represent the maximum local workgroup size in the X, Y, and Z
-    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, 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.
-    maxMeshWorkGroupSize :: (Word32, Word32, Word32)
-  , -- | #limits-maxMeshSharedMemorySize# @maxMeshSharedMemorySize@ is the
-    -- maximum total storage size, in bytes, available for variables declared
-    -- with the @Workgroup@ storage class in shader modules in the mesh shader
-    -- stage.
-    maxMeshSharedMemorySize :: Word32
-  , -- | #limits-maxMeshPayloadAndSharedMemorySize#
-    -- @maxMeshPayloadAndSharedMemorySize@ is the maximum total storage size,
-    -- in bytes, available for variables that are declared with the
-    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class in shader modules
-    -- in the mesh shader stage.
-    maxMeshPayloadAndSharedMemorySize :: Word32
-  , -- | #limits-maxMeshOutputMemorySize# @maxMeshOutputMemorySize@ is the
-    -- maximum total storage size, in bytes, available for output variables in
-    -- shader modules in the mesh shader stage, according to the formula in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.
-    maxMeshOutputMemorySize :: Word32
-  , -- | #limits-maxMeshPayloadAndOutputMemorySize#
-    -- @maxMeshPayloadAndOutputMemorySize@ is the maximum total storage size,
-    -- in bytes, available for variables that are declared with the
-    -- @TaskPayloadWorkgroupEXT@ storage class, or output variables in shader
-    -- modules in the mesh shader stage, according to the formula in
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.
-    maxMeshPayloadAndOutputMemorySize :: Word32
-  , -- | #limits-maxMeshOutputComponents# @maxMeshOutputComponents@ is the
-    -- maximum number of components of output variables which /can/ be output
-    -- from the mesh shader stage.
-    maxMeshOutputComponents :: Word32
-  , -- | #limits-maxMeshOutputVertices# @maxMeshOutputVertices@ is the maximum
-    -- number of vertices which /can/ be emitted by a single mesh shader
-    -- workgroup.
-    maxMeshOutputVertices :: Word32
-  , -- | #limits-maxMeshOutputPrimitives# @maxMeshOutputPrimitives@ is the
-    -- maximum number of primitives which /can/ be emitted by a single mesh
-    -- shader workgroup.
-    maxMeshOutputPrimitives :: Word32
-  , -- | #limits-maxMeshOutputLayers# @maxMeshOutputLayers@ is one greater than
-    -- the maximum layer index that /can/ be output from the mesh shader stage.
-    maxMeshOutputLayers :: Word32
-  , -- | #limits-maxMeshMultiviewViewCount# @maxMeshMultiviewViewCount@ is one
-    -- greater than the maximum view index that /can/ be used by any mesh
-    -- shader.
-    maxMeshMultiviewViewCount :: Word32
-  , -- | #limits-meshOutputPerVertexGranularity# @meshOutputPerVertexGranularity@
-    -- is the granularity of vertex allocation. The number of output vertices
-    -- allocated for the mesh shader stage is padded to a multiple of this
-    -- number. The value can be used to calculate the required storage size for
-    -- output variables in shader modules in the mesh shader stage, which
-    -- /must/ be less than or equal to @maxMeshOutputMemorySize@.
-    meshOutputPerVertexGranularity :: Word32
-  , -- | #limits-meshOutputPerPrimitiveGranularity#
-    -- @meshOutputPerPrimitiveGranularity@ is the granularity of primitive
-    -- allocation. The number of output primitives allocated for the mesh
-    -- shader stage is padded to a multiple of this number. The value can be
-    -- used to calculate the required storage size for output variables in
-    -- shader modules in the mesh shader stage, which /must/ be less than or
-    -- equal to @maxMeshOutputMemorySize@.
-    meshOutputPerPrimitiveGranularity :: Word32
-  , -- | #limits-maxPreferredTaskWorkGroupInvocations#
-    -- @maxPreferredTaskWorkGroupInvocations@ is the maximum number of task
-    -- shader invocations in a single workgroup that is preferred by the
-    -- implementation for optimal performance. The value is guaranteed to be a
-    -- multiple of a supported subgroup size for the task shader stage.
-    maxPreferredTaskWorkGroupInvocations :: Word32
-  , -- | #limits-maxPreferredMeshWorkGroupInvocations#
-    -- @maxPreferredMeshWorkGroupInvocations@ is the maximum number of mesh
-    -- shader invocations in a single workgroup that is preferred by the
-    -- implementation for optimal performance. The value is guaranteed to be a
-    -- multiple of a supported subgroup size for the mesh shader stage.
-    maxPreferredMeshWorkGroupInvocations :: Word32
-  , -- | #limits-prefersLocalInvocationVertexOutput#
-    -- @prefersLocalInvocationVertexOutput@ specifies whether writes to the
-    -- vertex output array in a mesh shader yield best performance when the
-    -- array index matches @LocalInvocationIndex@.
-    prefersLocalInvocationVertexOutput :: Bool
-  , -- | #limits-prefersLocalInvocationPrimitiveOutput#
-    -- @prefersLocalInvocationPrimitiveOutput@ specifies whether writes to the
-    -- primitive output array in a mesh shader yield best performance when the
-    -- array index matches @LocalInvocationIndex@.
-    prefersLocalInvocationPrimitiveOutput :: Bool
-  , -- | #limits-prefersCompactVertexOutput# @prefersCompactVertexOutput@
-    -- specifies whether output vertices should be compacted after custom
-    -- culling in the mesh shader for best performance, otherwise keeping the
-    -- vertices at their original location may be better.
-    prefersCompactVertexOutput :: Bool
-  , -- | #limits-prefersCompactPrimitiveOutput# @prefersCompactPrimitiveOutput@
-    -- specifies whether output primitives should be compacted after custom
-    -- culling in the mesh shader for best performance, otherwise the use of
-    -- @CullPrimitiveEXT@ may be better.
-    prefersCompactPrimitiveOutput :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceMeshShaderPropertiesEXT)
-#endif
-deriving instance Show PhysicalDeviceMeshShaderPropertiesEXT
-
-instance ToCStruct PhysicalDeviceMeshShaderPropertiesEXT where
-  withCStruct x f = allocaBytes 160 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceMeshShaderPropertiesEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTaskWorkGroupTotalCount)
-    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))
-    case (maxTaskWorkGroupCount) of
-      (e0, e1, e2) -> do
-        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)
-        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTaskWorkGroupInvocations)
-    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
-    case (maxTaskWorkGroupSize) of
-      (e0, e1, e2) -> do
-        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)
-        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxTaskPayloadSize)
-    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxTaskSharedMemorySize)
-    poke ((p `plusPtr` 56 :: Ptr Word32)) (maxTaskPayloadAndSharedMemorySize)
-    poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshWorkGroupTotalCount)
-    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))
-    case (maxMeshWorkGroupCount) of
-      (e0, e1, e2) -> do
-        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)
-        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 76 :: Ptr Word32)) (maxMeshWorkGroupInvocations)
-    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))
-    case (maxMeshWorkGroupSize) of
-      (e0, e1, e2) -> do
-        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)
-        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 92 :: Ptr Word32)) (maxMeshSharedMemorySize)
-    poke ((p `plusPtr` 96 :: Ptr Word32)) (maxMeshPayloadAndSharedMemorySize)
-    poke ((p `plusPtr` 100 :: Ptr Word32)) (maxMeshOutputMemorySize)
-    poke ((p `plusPtr` 104 :: Ptr Word32)) (maxMeshPayloadAndOutputMemorySize)
-    poke ((p `plusPtr` 108 :: Ptr Word32)) (maxMeshOutputComponents)
-    poke ((p `plusPtr` 112 :: Ptr Word32)) (maxMeshOutputVertices)
-    poke ((p `plusPtr` 116 :: Ptr Word32)) (maxMeshOutputPrimitives)
-    poke ((p `plusPtr` 120 :: Ptr Word32)) (maxMeshOutputLayers)
-    poke ((p `plusPtr` 124 :: Ptr Word32)) (maxMeshMultiviewViewCount)
-    poke ((p `plusPtr` 128 :: Ptr Word32)) (meshOutputPerVertexGranularity)
-    poke ((p `plusPtr` 132 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)
-    poke ((p `plusPtr` 136 :: Ptr Word32)) (maxPreferredTaskWorkGroupInvocations)
-    poke ((p `plusPtr` 140 :: Ptr Word32)) (maxPreferredMeshWorkGroupInvocations)
-    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationVertexOutput))
-    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationPrimitiveOutput))
-    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (prefersCompactVertexOutput))
-    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (prefersCompactPrimitiveOutput))
-    f
-  cStructSize = 160
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
-    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))
-    case ((zero, zero, zero)) of
-      (e0, e1, e2) -> do
-        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)
-        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
-    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
-    case ((zero, zero, zero)) of
-      (e0, e1, e2) -> do
-        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)
-        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)
-    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))
-    case ((zero, zero, zero)) of
-      (e0, e1, e2) -> do
-        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)
-        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)
-    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))
-    case ((zero, zero, zero)) of
-      (e0, e1, e2) -> do
-        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)
-        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
-        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
-    poke ((p `plusPtr` 92 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 100 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 104 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 108 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 112 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 116 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 120 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 124 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 128 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 132 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 136 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 140 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PhysicalDeviceMeshShaderPropertiesEXT where
-  peekCStruct p = do
-    maxTaskWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    let pmaxTaskWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))
-    maxTaskWorkGroupCount0 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))
-    maxTaskWorkGroupCount1 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))
-    maxTaskWorkGroupCount2 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))
-    maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
-    maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))
-    maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))
-    maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))
-    maxTaskPayloadSize <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
-    maxTaskSharedMemorySize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
-    maxTaskPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
-    maxMeshWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))
-    let pmaxMeshWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))
-    maxMeshWorkGroupCount0 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))
-    maxMeshWorkGroupCount1 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))
-    maxMeshWorkGroupCount2 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))
-    maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))
-    let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))
-    maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))
-    maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))
-    maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))
-    maxMeshSharedMemorySize <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))
-    maxMeshPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))
-    maxMeshOutputMemorySize <- peek @Word32 ((p `plusPtr` 100 :: Ptr Word32))
-    maxMeshPayloadAndOutputMemorySize <- peek @Word32 ((p `plusPtr` 104 :: Ptr Word32))
-    maxMeshOutputComponents <- peek @Word32 ((p `plusPtr` 108 :: Ptr Word32))
-    maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 112 :: Ptr Word32))
-    maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 116 :: Ptr Word32))
-    maxMeshOutputLayers <- peek @Word32 ((p `plusPtr` 120 :: Ptr Word32))
-    maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 124 :: Ptr Word32))
-    meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 128 :: Ptr Word32))
-    meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 132 :: Ptr Word32))
-    maxPreferredTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 136 :: Ptr Word32))
-    maxPreferredMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 140 :: Ptr Word32))
-    prefersLocalInvocationVertexOutput <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))
-    prefersLocalInvocationPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))
-    prefersCompactVertexOutput <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))
-    prefersCompactPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))
-    pure $ PhysicalDeviceMeshShaderPropertiesEXT
-             maxTaskWorkGroupTotalCount
-             (( maxTaskWorkGroupCount0
-              , maxTaskWorkGroupCount1
-              , maxTaskWorkGroupCount2 ))
-             maxTaskWorkGroupInvocations
-             (( maxTaskWorkGroupSize0
-              , maxTaskWorkGroupSize1
-              , maxTaskWorkGroupSize2 ))
-             maxTaskPayloadSize
-             maxTaskSharedMemorySize
-             maxTaskPayloadAndSharedMemorySize
-             maxMeshWorkGroupTotalCount
-             (( maxMeshWorkGroupCount0
-              , maxMeshWorkGroupCount1
-              , maxMeshWorkGroupCount2 ))
-             maxMeshWorkGroupInvocations
-             (( maxMeshWorkGroupSize0
-              , maxMeshWorkGroupSize1
-              , maxMeshWorkGroupSize2 ))
-             maxMeshSharedMemorySize
-             maxMeshPayloadAndSharedMemorySize
-             maxMeshOutputMemorySize
-             maxMeshPayloadAndOutputMemorySize
-             maxMeshOutputComponents
-             maxMeshOutputVertices
-             maxMeshOutputPrimitives
-             maxMeshOutputLayers
-             maxMeshMultiviewViewCount
-             meshOutputPerVertexGranularity
-             meshOutputPerPrimitiveGranularity
-             maxPreferredTaskWorkGroupInvocations
-             maxPreferredMeshWorkGroupInvocations
-             (bool32ToBool prefersLocalInvocationVertexOutput)
-             (bool32ToBool prefersLocalInvocationPrimitiveOutput)
-             (bool32ToBool prefersCompactVertexOutput)
-             (bool32ToBool prefersCompactPrimitiveOutput)
-
-instance Storable PhysicalDeviceMeshShaderPropertiesEXT where
-  sizeOf ~_ = 160
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceMeshShaderPropertiesEXT where
-  zero = PhysicalDeviceMeshShaderPropertiesEXT
-           zero
-           (zero, zero, zero)
-           zero
-           (zero, zero, zero)
-           zero
-           zero
-           zero
-           zero
-           (zero, zero, zero)
-           zero
-           (zero, zero, zero)
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkDrawMeshTasksIndirectCommandEXT - Structure specifying a mesh tasks
--- draw indirect command
---
--- = Description
---
--- The members of 'DrawMeshTasksIndirectCommandEXT' have the same meaning
--- as the similarly named parameters of 'cmdDrawMeshTasksEXT'.
---
--- == Valid Usage
---
--- -   [[VUID-{refpage}-TaskEXT-07322]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountX@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]
---
--- -   [[VUID-{refpage}-TaskEXT-07323]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountY@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]
---
--- -   [[VUID-{refpage}-TaskEXT-07324]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountZ@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]
---
--- -   [[VUID-{refpage}-TaskEXT-07325]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     contains a shader using the @TaskEXT@ @Execution@ @Model@, The
---     product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be
---     less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@
---
--- -   [[VUID-{refpage}-TaskEXT-07326]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountX@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0]
---
--- -   [[VUID-{refpage}-TaskEXT-07327]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountY@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1]
---
--- -   [[VUID-{refpage}-TaskEXT-07328]] If the current pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
---     @groupCountZ@ /must/ be less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2]
---
--- -   [[VUID-{refpage}-TaskEXT-07329]] If the current pipeline bound to
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
+--
+-- [__Contact__]
+--
+--     -   Christoph Kubisch
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_mesh_shader] @pixeljetstream%0A*Here describe the issue or question you have about the VK_EXT_mesh_shader extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_mesh_shader.adoc VK_EXT_mesh_shader>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2022-01-20
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_mesh_shader.txt GLSL_EXT_mesh_shader>
+--
+--     -   Interacts with Vulkan 1.1
+--
+--     -   Interacts with @VK_KHR_multiview@
+--
+--     -   Interacts with @VK_KHR_fragment_shading_rate@
+--
+-- [__Contributors__]
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Pat Brown, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Pierre Boudier, NVIDIA
+--
+--     -   Patrick Mours, NVIDIA
+--
+--     -   David Zhao Akeley, NVIDIA
+--
+--     -   Kedarnath Thangudu, NVIDIA
+--
+--     -   Timur Kristóf, Valve
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Philip Rebohle, Valve
+--
+--     -   Mike Blumenkrantz, Valve
+--
+--     -   Slawomir Grajewski, Intel
+--
+--     -   Michal Pietrasiuk, Intel
+--
+--     -   Mariusz Merecki, Intel
+--
+--     -   Tom Olson, ARM
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Sandeep Kakarlapudi, ARM
+--
+--     -   Ruihao Zhang, QUALCOMM
+--
+--     -   Ricardo Garcia, Igalia, S.L.
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Stu Smith, AMD
+--
+-- == Description
+--
+-- This extension provides a new mechanism allowing applications to
+-- generate collections of geometric primitives via programmable mesh
+-- shading. It is an alternative to the existing programmable primitive
+-- shading pipeline, which relied on generating input primitives by a fixed
+-- function assembler as well as fixed function vertex fetch.
+--
+-- This extension also adds support for the following SPIR-V extension in
+-- Vulkan:
+--
+-- -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>
+--
+-- == New Commands
+--
+-- -   'cmdDrawMeshTasksEXT'
+--
+-- -   'cmdDrawMeshTasksIndirectCountEXT'
+--
+-- -   'cmdDrawMeshTasksIndirectEXT'
+--
+-- == New Structures
+--
+-- -   'DrawMeshTasksIndirectCommandEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMeshShaderFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMeshShaderPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_MESH_SHADER_EXTENSION_NAME'
+--
+-- -   'EXT_MESH_SHADER_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.QueryType.QueryType':
+--
+--     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+--     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV':
+--
+--     -   'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV'
+--
+-- == New or Modified Built-In Variables
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-cullprimitive CullPrimitiveEXT>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivepointindices PrimitivePointIndicesEXT>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivelineindices PrimitiveLineIndicesEXT>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivetriangleindices PrimitiveTriangleIndicesEXT>
+--
+-- -   (modified)@Position@
+--
+-- -   (modified)@PointSize@
+--
+-- -   (modified)@ClipDistance@
+--
+-- -   (modified)@CullDistance@
+--
+-- -   (modified)@PrimitiveId@
+--
+-- -   (modified)@Layer@
+--
+-- -   (modified)@ViewportIndex@
+--
+-- -   (modified)@NumWorkgroups@
+--
+-- -   (modified)@WorkgroupSize@
+--
+-- -   (modified)@WorkgroupId@
+--
+-- -   (modified)@LocalInvocationId@
+--
+-- -   (modified)@GlobalInvocationId@
+--
+-- -   (modified)@LocalInvocationIndex@
+--
+-- -   (modified)@NumSubgroups@
+--
+-- -   (modified)@SubgroupId@
+--
+-- -   (modified)@DrawIndex@
+--
+-- -   (modified)@PrimitiveShadingRateKHR@
+--
+-- -   (modified)@ViewIndex@
+--
+-- == New SPIR-V Capability
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingEXT MeshShadingEXT>
+--
+-- == Version History
+--
+-- -   Revision 1, 2022-03-08 (Christoph Kubisch, Daniel Koch, Patrick
+--     Mours)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'DrawMeshTasksIndirectCommandEXT',
+-- 'PhysicalDeviceMeshShaderFeaturesEXT',
+-- 'PhysicalDeviceMeshShaderPropertiesEXT', 'cmdDrawMeshTasksEXT',
+-- 'cmdDrawMeshTasksIndirectCountEXT', 'cmdDrawMeshTasksIndirectEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_mesh_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_EXT_mesh_shader  ( cmdDrawMeshTasksEXT
+                                             , cmdDrawMeshTasksIndirectEXT
+                                             , cmdDrawMeshTasksIndirectCountEXT
+                                             , PhysicalDeviceMeshShaderFeaturesEXT(..)
+                                             , PhysicalDeviceMeshShaderPropertiesEXT(..)
+                                             , DrawMeshTasksIndirectCommandEXT(..)
+                                             , EXT_MESH_SHADER_SPEC_VERSION
+                                             , pattern EXT_MESH_SHADER_SPEC_VERSION
+                                             , EXT_MESH_SHADER_EXTENSION_NAME
+                                             , pattern EXT_MESH_SHADER_EXTENSION_NAME
+                                             , IndirectCommandsTokenTypeNV(..)
+                                             ) 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(pVkCmdDrawMeshTasksEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectCountEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectEXT))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT))
+import Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsTokenTypeNV(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMeshTasksEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMeshTasksEXT - Draw mesh task work items
+--
+-- = Description
+--
+-- When the command is executed, a global workgroup consisting of
+-- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is
+-- assembled.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08601# For each push constant that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksEXT-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksEXT-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksEXT-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMeshTasksEXT-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksEXT-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMeshTasksEXT-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-09000# If a color attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09001# If a depth attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09003# If an attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass in any way other than as an
+--     attachment, this command /must/ not write to that image subresource
+--     as an attachment
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08617# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08618# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08619# If a shader object that
+--     outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08620# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08621# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08622# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08623# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08624# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08625# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08626# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08627# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08628# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08629# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08630# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08631# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08632# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08633# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08634# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08635# If a shader object is bound
+--     to any graphics stage, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-09232# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08636# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08637# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-exclusiveScissor-09235# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08638# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08639# If a shader object is bound
+--     to any graphics stage, 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08640# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08641# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08643# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08644# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08876# If a shader object is bound
+--     to any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09363# If there is no shader object
+--     bound to any graphics stage, the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09366# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksEXT-pNext-07935# If this command has been
+--     called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-08964# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-08965# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-09237# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08651# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08652# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08653# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08919# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08654# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08920# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08657# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08658# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08659# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-pipelineFragmentShadingRate-09238# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-rasterizationSamples-07474# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMeshTasksEXT-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08698# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08699# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08880# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08716# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-09116# If a shader object is bound
+--     to any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-TaskEXT-07322# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountX@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountY@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountZ@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@, The
+--     product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be
+--     less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountX@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0]
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountY@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1]
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountZ@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2]
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329# If the current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     The product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/
+--     be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupTotalCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087# The current pipeline
+--     bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     /must/ contain a shader stage using the @MeshEXT@ @Execution@
+--     @Model@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksEXT-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_EXT_mesh_shader VK_EXT_mesh_shader>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdDrawMeshTasksEXT :: 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 ()
+cmdDrawMeshTasksEXT commandBuffer
+                      groupCountX
+                      groupCountY
+                      groupCountZ = liftIO $ do
+  let vkCmdDrawMeshTasksEXTPtr = pVkCmdDrawMeshTasksEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawMeshTasksEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksEXT is null" Nothing Nothing
+  let vkCmdDrawMeshTasksEXT' = mkVkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXTPtr
+  traceAroundEvent "vkCmdDrawMeshTasksEXT" (vkCmdDrawMeshTasksEXT'
+                                              (commandBufferHandle (commandBuffer))
+                                              (groupCountX)
+                                              (groupCountY)
+                                              (groupCountZ))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMeshTasksIndirectEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a
+-- command buffer
+--
+-- = Description
+--
+-- 'cmdDrawMeshTasksIndirectEXT' behaves similarly to 'cmdDrawMeshTasksEXT'
+-- except that the parameters are read by the device from a buffer during
+-- execution. @drawCount@ draws are executed by the command, with
+-- parameters taken from @buffer@ starting at @offset@ and increasing by
+-- @stride@ bytes for each successive draw. The parameters of each draw are
+-- encoded in an array of 'DrawMeshTasksIndirectCommandEXT' structures. If
+-- @drawCount@ is less than or equal to one, @stride@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-selectableCubicWeights-09214# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08600# For each set /n/
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectEXT-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectEXT-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectEXT-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectEXT-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07831# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619# If a shader object
+--     that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08624# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08625# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08626# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08633# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08634# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08635# If a shader object
+--     is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-09232# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07878# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08639# If a shader object
+--     is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08640# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08641# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08643# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876# If a shader object
+--     is bound to any graphics stage, the current render pass instance
+--     /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362# If
+--     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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-07880# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectEXT-pNext-07935# If this command has
+--     been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-09237# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08651# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08652# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08653# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08919# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08654# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08920# If
+--     a shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08657# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08658# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08659# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMeshTasksIndirectEXT-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08716# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116# If a shader object
+--     is bound to any graphics stage or the currently bound graphics
+--     pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-buffer-02708# If @buffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709# @buffer@ /must/
+--     have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710# @offset@ /must/ be
+--     a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719# @drawCount@
+--     /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088# If @drawCount@
+--     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/
+--     be greater than or equal to
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089# If @drawCount@
+--     is equal to @1@, (@offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090# If @drawCount@
+--     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091# The current
+--     pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     /must/ contain a shader stage using the @MeshEXT@ @Execution@
+--     @Model@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter# @buffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass# This command /must/
+--     only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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_EXT_mesh_shader VK_EXT_mesh_shader>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawMeshTasksIndirectEXT :: 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)
+                            -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
+                               ("drawCount" ::: Word32)
+                            -> -- | @stride@ is the byte stride between successive sets of draw parameters.
+                               ("stride" ::: Word32)
+                            -> io ()
+cmdDrawMeshTasksIndirectEXT commandBuffer
+                              buffer
+                              offset
+                              drawCount
+                              stride = liftIO $ do
+  let vkCmdDrawMeshTasksIndirectEXTPtr = pVkCmdDrawMeshTasksIndirectEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawMeshTasksIndirectEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectEXT is null" Nothing Nothing
+  let vkCmdDrawMeshTasksIndirectEXT' = mkVkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXTPtr
+  traceAroundEvent "vkCmdDrawMeshTasksIndirectEXT" (vkCmdDrawMeshTasksIndirectEXT'
+                                                      (commandBufferHandle (commandBuffer))
+                                                      (buffer)
+                                                      (offset)
+                                                      (drawCount)
+                                                      (stride))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMeshTasksIndirectCountEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw
+-- with the draw count sourced from a buffer
+--
+-- = Description
+--
+-- 'cmdDrawMeshTasksIndirectCountEXT' behaves similarly to
+-- 'cmdDrawMeshTasksIndirectEXT' except that the draw count is read by the
+-- device from a buffer during execution. The command will read an unsigned
+-- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use
+-- this as the draw count.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-cubicRangeClamp-09212# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08600# For each set
+--     /n/ that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08604# Descriptors in
+--     bound descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08605# If a descriptor
+--     is dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608# If a pipeline
+--     is bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectCountEXT-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectCountEXT-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectCountEXT-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectCountEXT-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003# If an
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it /must/ not
+--     be accessed in any way other than as an attachment, storage image,
+--     or sampled image by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539# If any
+--     previously recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07831# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619# If a shader
+--     object that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08624# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08625# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08626# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08633# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08634# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08635# If a shader
+--     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-09232# If a shader
+--     object is bound to any graphics stage, and the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,
+--     then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636# If a shader
+--     object is bound to any graphics stage, and the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,
+--     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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234# If
+--     a shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07878# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235# If
+--     a shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08639# If a shader
+--     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08640# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08641# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08643# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876# If a shader
+--     object is bound to any graphics stage, the current render pass
+--     instance /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362#
+--     If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367#
+--     If there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07880# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935# If this
+--     command has been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-09237# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08651# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08652# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08653# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08919#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08654# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08920#
+--     If a shader object is bound to any graphics stage, and the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08657# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08658# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08659# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMeshTasksIndirectCountEXT-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850# If dynamic
+--     state was inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08685# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08686# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08687# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08688# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08689# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08690# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08693# If there is no
+--     bound graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696# If there is no
+--     bound graphics pipeline, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878# All bound
+--     graphics shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879# All bound
+--     graphics shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715# If
+--     the bound graphics pipeline state includes a fragment shader stage,
+--     was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08716# If
+--     the bound graphics pipeline state includes a fragment shader stage,
+--     was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09116# If a shader
+--     object is bound to any graphics stage or the currently bound
+--     graphics pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708# If @buffer@
+--     is non-sparse then it /must/ be bound completely and contiguously to
+--     a single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709# @buffer@
+--     /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710# @offset@
+--     /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714# If
+--     @countBuffer@ is non-sparse then it /must/ be bound completely and
+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715#
+--     @countBuffer@ /must/ have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716#
+--     @countBufferOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717# The
+--     count stored in @countBuffer@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129#
+--     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>
+--     is not enabled this function /must/ not be used
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096# @stride@
+--     /must/ be a multiple of @4@ and /must/ be greater than or equal to
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097# If
+--     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×
+--     (@maxDrawCount@ - 1) + @offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098# If the
+--     count stored in @countBuffer@ is equal to @1@, (@offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099# If the
+--     count stored in @countBuffer@ is greater than @1@, (@stride@ ×
+--     (@drawCount@ - 1) + @offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100# The current
+--     pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     /must/ contain a shader stage using the @MeshEXT@ @Execution@
+--     @Model@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter# @buffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter#
+--     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
+--     handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass# This command
+--     /must/ only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent# Each of
+--     @buffer@, @commandBuffer@, and @countBuffer@ /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_EXT_mesh_shader VK_EXT_mesh_shader>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawMeshTasksIndirectCountEXT :: 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)
+                                 -> -- | @countBuffer@ is the buffer containing the draw count.
+                                    ("countBuffer" ::: Buffer)
+                                 -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw
+                                    -- count begins.
+                                    ("countBufferOffset" ::: DeviceSize)
+                                 -> -- | @maxDrawCount@ specifies the maximum number of draws that will be
+                                    -- executed. The actual number of executed draw calls is the minimum of the
+                                    -- count specified in @countBuffer@ and @maxDrawCount@.
+                                    ("maxDrawCount" ::: Word32)
+                                 -> -- | @stride@ is the byte stride between successive sets of draw parameters.
+                                    ("stride" ::: Word32)
+                                 -> io ()
+cmdDrawMeshTasksIndirectCountEXT commandBuffer
+                                   buffer
+                                   offset
+                                   countBuffer
+                                   countBufferOffset
+                                   maxDrawCount
+                                   stride = liftIO $ do
+  let vkCmdDrawMeshTasksIndirectCountEXTPtr = pVkCmdDrawMeshTasksIndirectCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawMeshTasksIndirectCountEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountEXT is null" Nothing Nothing
+  let vkCmdDrawMeshTasksIndirectCountEXT' = mkVkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXTPtr
+  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountEXT" (vkCmdDrawMeshTasksIndirectCountEXT'
+                                                           (commandBufferHandle (commandBuffer))
+                                                           (buffer)
+                                                           (offset)
+                                                           (countBuffer)
+                                                           (countBufferOffset)
+                                                           (maxDrawCount)
+                                                           (stride))
+  pure $ ()
+
+
+-- | VkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh
+-- shading features that can be supported by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMeshShaderFeaturesEXT' 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. 'PhysicalDeviceMeshShaderFeaturesEXT' /can/ also be used in
+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to
+-- selectively enable these features.
+--
+-- The corresponding features of the
+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV'
+-- structure /must/ match those in 'PhysicalDeviceMeshShaderFeaturesEXT'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032#
+--     If @multiviewMeshShader@ is enabled then
+--     'Vulkan.Extensions.VK_KHR_multiview.PhysicalDeviceMultiviewFeaturesKHR'::@multiview@
+--     /must/ also be enabled
+--
+-- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033#
+--     If @primitiveFragmentShadingRateMeshShader@ is enabled then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR'::@primitiveFragmentShadingRate@
+--     /must/ also be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMeshShaderFeaturesEXT = PhysicalDeviceMeshShaderFeaturesEXT
+  { -- | #features-taskShader# @taskShader@ specifies whether task shaders are
+    -- supported. If this feature is not enabled, the
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' and
+    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'
+    -- enum values /must/ not be used.
+    taskShader :: Bool
+  , -- | #features-meshShader# @meshShader@ specifies whether mesh shaders are
+    -- supported. If this feature is not enabled, the
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' and
+    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'
+    -- enum values /must/ not be used.
+    meshShader :: Bool
+  , -- | #features-multiview-mesh# @multiviewMeshShader@ specifies whether the
+    -- implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>
+    -- rendering within a render pass, with mesh shaders. If this feature is
+    -- not enabled, then a pipeline compiled against a subpass with a non-zero
+    -- view mask /must/ not include a mesh shader.
+    multiviewMeshShader :: Bool
+  , -- | #features-primitiveFragmentShadingRate-mesh#
+    -- @primitiveFragmentShadingRateMeshShader@ indicates that the
+    -- implementation supports the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>
+    -- in mesh shaders.
+    primitiveFragmentShadingRateMeshShader :: Bool
+  , -- | #features-meshShaderQueries# @meshShaderQueries@ indicates that the
+    -- implementation supports creating query pools using the
+    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'
+    -- query type and statistic queries containing the
+    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'
+    -- and
+    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'
+    -- flags
+    meshShaderQueries :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMeshShaderFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceMeshShaderFeaturesEXT
+
+instance ToCStruct PhysicalDeviceMeshShaderFeaturesEXT where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMeshShaderFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (multiviewMeshShader))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRateMeshShader))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (meshShaderQueries))
+    f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceMeshShaderFeaturesEXT where
+  peekCStruct p = do
+    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    multiviewMeshShader <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    primitiveFragmentShadingRateMeshShader <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    meshShaderQueries <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    pure $ PhysicalDeviceMeshShaderFeaturesEXT
+             (bool32ToBool taskShader)
+             (bool32ToBool meshShader)
+             (bool32ToBool multiviewMeshShader)
+             (bool32ToBool primitiveFragmentShadingRateMeshShader)
+             (bool32ToBool meshShaderQueries)
+
+instance Storable PhysicalDeviceMeshShaderFeaturesEXT where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMeshShaderFeaturesEXT where
+  zero = PhysicalDeviceMeshShaderFeaturesEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh
+-- shading properties
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceMeshShaderPropertiesEXT' structure
+-- describe the following implementation-dependent limits:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMeshShaderPropertiesEXT' structure is included in
+-- the @pNext@ chain of
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
+-- it is filled with the implementation-dependent limits.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMeshShaderPropertiesEXT = PhysicalDeviceMeshShaderPropertiesEXT
+  { -- | #limits-maxTaskWorkGroupTotalCount# @maxTaskWorkGroupTotalCount@ is the
+    -- maximum number of total local workgroups that /can/ be launched by a
+    -- single mesh tasks drawing command. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.
+    maxTaskWorkGroupTotalCount :: Word32
+  , -- | #limits-maxTaskWorkGroupCount# @maxTaskWorkGroupCount@[3] is the maximum
+    -- number of local workgroups that /can/ be launched by a single mesh tasks
+    -- drawing command. These three values represent the maximum number of
+    -- local workgroups for the X, Y, and Z dimensions, respectively. The
+    -- workgroup count parameters to the drawing commands /must/ be less than
+    -- or equal to the corresponding limit. The product of these dimensions
+    -- /must/ be less than or equal to @maxTaskWorkGroupTotalCount@.
+    maxTaskWorkGroupCount :: (Word32, Word32, Word32)
+  , -- | #limits-maxTaskWorkGroupInvocations# @maxTaskWorkGroupInvocations@ is
+    -- the maximum total number of task shader invocations in a single local
+    -- workgroup. The product of the X, Y, and Z sizes, as specified by the
+    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the
+    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than
+    -- or equal to this limit.
+    maxTaskWorkGroupInvocations :: Word32
+  , -- | #limits-maxTaskWorkGroupSize# @maxTaskWorkGroupSize@[3] is the maximum
+    -- size of a local task workgroup, per dimension. These three values
+    -- represent the maximum local workgroup size in the X, Y, and Z
+    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, 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.
+    maxTaskWorkGroupSize :: (Word32, Word32, Word32)
+  , -- | #limits-maxTaskPayloadSize# @maxTaskPayloadSize@ is the maximum total
+    -- storage size, in bytes, available for variables declared with the
+    -- @TaskPayloadWorkgroupEXT@ storage class in shader modules in the task
+    -- shader stage.
+    maxTaskPayloadSize :: Word32
+  , -- | #limits-maxTaskSharedMemorySize# @maxTaskSharedMemorySize@ is the
+    -- maximum total storage size, in bytes, available for variables declared
+    -- with the @Workgroup@ storage class in shader modules in the task shader
+    -- stage.
+    maxTaskSharedMemorySize :: Word32
+  , -- | #limits-maxTaskPayloadAndSharedMemorySize#
+    -- @maxTaskPayloadAndSharedMemorySize@ is the maximum total storage size,
+    -- in bytes, available for variables that are declared with the
+    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class, in shader
+    -- modules in the task shader stage.
+    maxTaskPayloadAndSharedMemorySize :: Word32
+  , -- | #limits-maxMeshWorkGroupTotalCount# @maxMeshWorkGroupTotalCount@ is the
+    -- maximum number of local output tasks a single task shader workgroup can
+    -- emit.
+    maxMeshWorkGroupTotalCount :: Word32
+  , -- | #limits-maxMeshWorkGroupCount# @maxMeshWorkGroupCount@[3] is the maximum
+    -- number of local output tasks a single task shader workgroup can emit,
+    -- per dimension. These three values represent the maximum number of local
+    -- output tasks for the X, Y, and Z dimensions, respectively. The workgroup
+    -- count parameters to the @OpEmitMeshTasksEXT@ /must/ be less than or
+    -- equal to the corresponding limit. The product of these dimensions /must/
+    -- be less than or equal to @maxMeshWorkGroupTotalCount@.
+    maxMeshWorkGroupCount :: (Word32, Word32, Word32)
+  , -- | #limits-maxMeshWorkGroupInvocations# @maxMeshWorkGroupInvocations@ is
+    -- the maximum total number of mesh shader invocations in a single local
+    -- workgroup. The product of the X, Y, and Z sizes, as specified by the
+    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the
+    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than
+    -- or equal to this limit.
+    maxMeshWorkGroupInvocations :: Word32
+  , -- | #limits-maxMeshWorkGroupSize# @maxMeshWorkGroupSize@[3] is the maximum
+    -- size of a local mesh workgroup, per dimension. These three values
+    -- represent the maximum local workgroup size in the X, Y, and Z
+    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, 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.
+    maxMeshWorkGroupSize :: (Word32, Word32, Word32)
+  , -- | #limits-maxMeshSharedMemorySize# @maxMeshSharedMemorySize@ is the
+    -- maximum total storage size, in bytes, available for variables declared
+    -- with the @Workgroup@ storage class in shader modules in the mesh shader
+    -- stage.
+    maxMeshSharedMemorySize :: Word32
+  , -- | #limits-maxMeshPayloadAndSharedMemorySize#
+    -- @maxMeshPayloadAndSharedMemorySize@ is the maximum total storage size,
+    -- in bytes, available for variables that are declared with the
+    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class in shader modules
+    -- in the mesh shader stage.
+    maxMeshPayloadAndSharedMemorySize :: Word32
+  , -- | #limits-maxMeshOutputMemorySize# @maxMeshOutputMemorySize@ is the
+    -- maximum total storage size, in bytes, available for output variables in
+    -- shader modules in the mesh shader stage, according to the formula in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.
+    maxMeshOutputMemorySize :: Word32
+  , -- | #limits-maxMeshPayloadAndOutputMemorySize#
+    -- @maxMeshPayloadAndOutputMemorySize@ is the maximum total storage size,
+    -- in bytes, available for variables that are declared with the
+    -- @TaskPayloadWorkgroupEXT@ storage class, or output variables in shader
+    -- modules in the mesh shader stage, according to the formula in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.
+    maxMeshPayloadAndOutputMemorySize :: Word32
+  , -- | #limits-maxMeshOutputComponents# @maxMeshOutputComponents@ is the
+    -- maximum number of components of output variables which /can/ be output
+    -- from the mesh shader stage.
+    maxMeshOutputComponents :: Word32
+  , -- | #limits-maxMeshOutputVertices# @maxMeshOutputVertices@ is the maximum
+    -- number of vertices which /can/ be emitted by a single mesh shader
+    -- workgroup.
+    maxMeshOutputVertices :: Word32
+  , -- | #limits-maxMeshOutputPrimitives# @maxMeshOutputPrimitives@ is the
+    -- maximum number of primitives which /can/ be emitted by a single mesh
+    -- shader workgroup.
+    maxMeshOutputPrimitives :: Word32
+  , -- | #limits-maxMeshOutputLayers# @maxMeshOutputLayers@ is one greater than
+    -- the maximum layer index that /can/ be output from the mesh shader stage.
+    maxMeshOutputLayers :: Word32
+  , -- | #limits-maxMeshMultiviewViewCount# @maxMeshMultiviewViewCount@ is one
+    -- greater than the maximum view index that /can/ be used by any mesh
+    -- shader.
+    maxMeshMultiviewViewCount :: Word32
+  , -- | #limits-meshOutputPerVertexGranularity# @meshOutputPerVertexGranularity@
+    -- is the granularity of vertex allocation. The number of output vertices
+    -- allocated for the mesh shader stage is padded to a multiple of this
+    -- number. The value can be used to calculate the required storage size for
+    -- output variables in shader modules in the mesh shader stage, which
+    -- /must/ be less than or equal to @maxMeshOutputMemorySize@.
+    meshOutputPerVertexGranularity :: Word32
+  , -- | #limits-meshOutputPerPrimitiveGranularity#
+    -- @meshOutputPerPrimitiveGranularity@ is the granularity of primitive
+    -- allocation. The number of output primitives allocated for the mesh
+    -- shader stage is padded to a multiple of this number. The value can be
+    -- used to calculate the required storage size for output variables in
+    -- shader modules in the mesh shader stage, which /must/ be less than or
+    -- equal to @maxMeshOutputMemorySize@.
+    meshOutputPerPrimitiveGranularity :: Word32
+  , -- | #limits-maxPreferredTaskWorkGroupInvocations#
+    -- @maxPreferredTaskWorkGroupInvocations@ is the maximum number of task
+    -- shader invocations in a single workgroup that is preferred by the
+    -- implementation for optimal performance. The value is guaranteed to be a
+    -- multiple of a supported subgroup size for the task shader stage.
+    maxPreferredTaskWorkGroupInvocations :: Word32
+  , -- | #limits-maxPreferredMeshWorkGroupInvocations#
+    -- @maxPreferredMeshWorkGroupInvocations@ is the maximum number of mesh
+    -- shader invocations in a single workgroup that is preferred by the
+    -- implementation for optimal performance. The value is guaranteed to be a
+    -- multiple of a supported subgroup size for the mesh shader stage.
+    maxPreferredMeshWorkGroupInvocations :: Word32
+  , -- | #limits-prefersLocalInvocationVertexOutput#
+    -- @prefersLocalInvocationVertexOutput@ specifies whether writes to the
+    -- vertex output array in a mesh shader yield best performance when the
+    -- array index matches @LocalInvocationIndex@.
+    prefersLocalInvocationVertexOutput :: Bool
+  , -- | #limits-prefersLocalInvocationPrimitiveOutput#
+    -- @prefersLocalInvocationPrimitiveOutput@ specifies whether writes to the
+    -- primitive output array in a mesh shader yield best performance when the
+    -- array index matches @LocalInvocationIndex@.
+    prefersLocalInvocationPrimitiveOutput :: Bool
+  , -- | #limits-prefersCompactVertexOutput# @prefersCompactVertexOutput@
+    -- specifies whether output vertices should be compacted after custom
+    -- culling in the mesh shader for best performance, otherwise keeping the
+    -- vertices at their original location may be better.
+    prefersCompactVertexOutput :: Bool
+  , -- | #limits-prefersCompactPrimitiveOutput# @prefersCompactPrimitiveOutput@
+    -- specifies whether output primitives should be compacted after custom
+    -- culling in the mesh shader for best performance, otherwise the use of
+    -- @CullPrimitiveEXT@ may be better.
+    prefersCompactPrimitiveOutput :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMeshShaderPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceMeshShaderPropertiesEXT
+
+instance ToCStruct PhysicalDeviceMeshShaderPropertiesEXT where
+  withCStruct x f = allocaBytes 160 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMeshShaderPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTaskWorkGroupTotalCount)
+    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))
+    case (maxTaskWorkGroupCount) of
+      (e0, e1, e2) -> do
+        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)
+        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTaskWorkGroupInvocations)
+    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
+    case (maxTaskWorkGroupSize) of
+      (e0, e1, e2) -> do
+        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)
+        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxTaskPayloadSize)
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxTaskSharedMemorySize)
+    poke ((p `plusPtr` 56 :: Ptr Word32)) (maxTaskPayloadAndSharedMemorySize)
+    poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshWorkGroupTotalCount)
+    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))
+    case (maxMeshWorkGroupCount) of
+      (e0, e1, e2) -> do
+        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)
+        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 76 :: Ptr Word32)) (maxMeshWorkGroupInvocations)
+    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))
+    case (maxMeshWorkGroupSize) of
+      (e0, e1, e2) -> do
+        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)
+        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 92 :: Ptr Word32)) (maxMeshSharedMemorySize)
+    poke ((p `plusPtr` 96 :: Ptr Word32)) (maxMeshPayloadAndSharedMemorySize)
+    poke ((p `plusPtr` 100 :: Ptr Word32)) (maxMeshOutputMemorySize)
+    poke ((p `plusPtr` 104 :: Ptr Word32)) (maxMeshPayloadAndOutputMemorySize)
+    poke ((p `plusPtr` 108 :: Ptr Word32)) (maxMeshOutputComponents)
+    poke ((p `plusPtr` 112 :: Ptr Word32)) (maxMeshOutputVertices)
+    poke ((p `plusPtr` 116 :: Ptr Word32)) (maxMeshOutputPrimitives)
+    poke ((p `plusPtr` 120 :: Ptr Word32)) (maxMeshOutputLayers)
+    poke ((p `plusPtr` 124 :: Ptr Word32)) (maxMeshMultiviewViewCount)
+    poke ((p `plusPtr` 128 :: Ptr Word32)) (meshOutputPerVertexGranularity)
+    poke ((p `plusPtr` 132 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)
+    poke ((p `plusPtr` 136 :: Ptr Word32)) (maxPreferredTaskWorkGroupInvocations)
+    poke ((p `plusPtr` 140 :: Ptr Word32)) (maxPreferredMeshWorkGroupInvocations)
+    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationVertexOutput))
+    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationPrimitiveOutput))
+    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (prefersCompactVertexOutput))
+    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (prefersCompactPrimitiveOutput))
+    f
+  cStructSize = 160
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))
+    case ((zero, zero, zero)) of
+      (e0, e1, e2) -> do
+        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)
+        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
+    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
+    case ((zero, zero, zero)) of
+      (e0, e1, e2) -> do
+        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)
+        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)
+    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))
+    case ((zero, zero, zero)) of
+      (e0, e1, e2) -> do
+        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)
+        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)
+    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))
+    case ((zero, zero, zero)) of
+      (e0, e1, e2) -> do
+        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)
+        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)
+        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)
+    poke ((p `plusPtr` 92 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 100 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 104 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 108 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 112 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 116 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 120 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 124 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 128 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 132 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 136 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 140 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceMeshShaderPropertiesEXT where
+  peekCStruct p = do
+    maxTaskWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    let pmaxTaskWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))
+    maxTaskWorkGroupCount0 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))
+    maxTaskWorkGroupCount1 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))
+    maxTaskWorkGroupCount2 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))
+    maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))
+    maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))
+    maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))
+    maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))
+    maxTaskPayloadSize <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
+    maxTaskSharedMemorySize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
+    maxTaskPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
+    maxMeshWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))
+    let pmaxMeshWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))
+    maxMeshWorkGroupCount0 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))
+    maxMeshWorkGroupCount1 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))
+    maxMeshWorkGroupCount2 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))
+    maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))
+    let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))
+    maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))
+    maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))
+    maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))
+    maxMeshSharedMemorySize <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))
+    maxMeshPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))
+    maxMeshOutputMemorySize <- peek @Word32 ((p `plusPtr` 100 :: Ptr Word32))
+    maxMeshPayloadAndOutputMemorySize <- peek @Word32 ((p `plusPtr` 104 :: Ptr Word32))
+    maxMeshOutputComponents <- peek @Word32 ((p `plusPtr` 108 :: Ptr Word32))
+    maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 112 :: Ptr Word32))
+    maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 116 :: Ptr Word32))
+    maxMeshOutputLayers <- peek @Word32 ((p `plusPtr` 120 :: Ptr Word32))
+    maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 124 :: Ptr Word32))
+    meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 128 :: Ptr Word32))
+    meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 132 :: Ptr Word32))
+    maxPreferredTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 136 :: Ptr Word32))
+    maxPreferredMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 140 :: Ptr Word32))
+    prefersLocalInvocationVertexOutput <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))
+    prefersLocalInvocationPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))
+    prefersCompactVertexOutput <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))
+    prefersCompactPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))
+    pure $ PhysicalDeviceMeshShaderPropertiesEXT
+             maxTaskWorkGroupTotalCount
+             (( maxTaskWorkGroupCount0
+              , maxTaskWorkGroupCount1
+              , maxTaskWorkGroupCount2 ))
+             maxTaskWorkGroupInvocations
+             (( maxTaskWorkGroupSize0
+              , maxTaskWorkGroupSize1
+              , maxTaskWorkGroupSize2 ))
+             maxTaskPayloadSize
+             maxTaskSharedMemorySize
+             maxTaskPayloadAndSharedMemorySize
+             maxMeshWorkGroupTotalCount
+             (( maxMeshWorkGroupCount0
+              , maxMeshWorkGroupCount1
+              , maxMeshWorkGroupCount2 ))
+             maxMeshWorkGroupInvocations
+             (( maxMeshWorkGroupSize0
+              , maxMeshWorkGroupSize1
+              , maxMeshWorkGroupSize2 ))
+             maxMeshSharedMemorySize
+             maxMeshPayloadAndSharedMemorySize
+             maxMeshOutputMemorySize
+             maxMeshPayloadAndOutputMemorySize
+             maxMeshOutputComponents
+             maxMeshOutputVertices
+             maxMeshOutputPrimitives
+             maxMeshOutputLayers
+             maxMeshMultiviewViewCount
+             meshOutputPerVertexGranularity
+             meshOutputPerPrimitiveGranularity
+             maxPreferredTaskWorkGroupInvocations
+             maxPreferredMeshWorkGroupInvocations
+             (bool32ToBool prefersLocalInvocationVertexOutput)
+             (bool32ToBool prefersLocalInvocationPrimitiveOutput)
+             (bool32ToBool prefersCompactVertexOutput)
+             (bool32ToBool prefersCompactPrimitiveOutput)
+
+instance Storable PhysicalDeviceMeshShaderPropertiesEXT where
+  sizeOf ~_ = 160
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMeshShaderPropertiesEXT where
+  zero = PhysicalDeviceMeshShaderPropertiesEXT
+           zero
+           (zero, zero, zero)
+           zero
+           (zero, zero, zero)
+           zero
+           zero
+           zero
+           zero
+           (zero, zero, zero)
+           zero
+           (zero, zero, zero)
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkDrawMeshTasksIndirectCommandEXT - Structure specifying a mesh tasks
+-- draw indirect command
+--
+-- = Description
+--
+-- The members of 'DrawMeshTasksIndirectCommandEXT' have the same meaning
+-- as the similarly named parameters of 'cmdDrawMeshTasksEXT'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountX@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountY@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountZ@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     contains a shader using the @TaskEXT@ @Execution@ @Model@, The
+--     product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be
+--     less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountX@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0]
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountY@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1]
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328# If the
+--     current pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
+--     @groupCountZ@ /must/ be less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2]
+--
+-- -   #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329# If the
+--     current pipeline bound to
 --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
 --     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,
 --     The product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/
diff --git a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs
--- a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs
+++ b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Bill Hollings
diff --git a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Bill Hollings
diff --git a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs
--- a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs
+++ b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
--- a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
+++ b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
@@ -17,6071 +17,7458 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
---
--- [__Contact__]
---
---     -   Mike Blumenkrantz
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_multi_draw] @zmike%0A*Here describe the issue or question you have about the VK_EXT_multi_draw extension* >
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2021-05-19
---
--- [__IP Status__]
---     No known IP claims.
---
--- [__Contributors__]
---
---     -   Mike Blumenkrantz, VALVE
---
---     -   Piers Daniell, NVIDIA
---
---     -   Faith Ekstrand, INTEL
---
---     -   Spencer Fricke, SAMSUNG
---
---     -   Ricardo Garcia, IGALIA
---
---     -   Jon Leech, KHRONOS
---
---     -   Stu Smith, AMD
---
--- == Description
---
--- Processing multiple draw commands in sequence incurs measurable overhead
--- within drivers due to repeated state checks and updates during dispatch.
--- This extension enables passing the entire sequence of draws directly to
--- the driver in order to avoid any such overhead, using an array of
--- 'MultiDrawInfoEXT' or 'MultiDrawIndexedInfoEXT' structs with
--- 'cmdDrawMultiEXT' or 'cmdDrawMultiIndexedEXT', respectively. These
--- functions could be used any time multiple draw commands are being
--- recorded without any state changes between them in order to maximize
--- performance.
---
--- == New Commands
---
--- -   'cmdDrawMultiEXT'
---
--- -   'cmdDrawMultiIndexedEXT'
---
--- == New Structures
---
--- -   'MultiDrawIndexedInfoEXT'
---
--- -   'MultiDrawInfoEXT'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceMultiDrawFeaturesEXT'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
---
---     -   'PhysicalDeviceMultiDrawPropertiesEXT'
---
--- == New Enum Constants
---
--- -   'EXT_MULTI_DRAW_EXTENSION_NAME'
---
--- -   'EXT_MULTI_DRAW_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT'
---
--- == New or Modified Built-In Variables
---
--- -   (modified)@DrawIndex@
---
--- == Version History
---
--- -   Revision 1, 2021-01-20 (Mike Blumenkrantz)
---
---     -   Initial version
---
--- == See Also
---
--- 'MultiDrawIndexedInfoEXT', 'MultiDrawInfoEXT',
--- 'PhysicalDeviceMultiDrawFeaturesEXT',
--- 'PhysicalDeviceMultiDrawPropertiesEXT', 'cmdDrawMultiEXT',
--- 'cmdDrawMultiIndexedEXT'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>
---
--- This page is a generated document. Fixes and changes should be made to
--- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_multi_draw  ( cmdDrawMultiEXT
-                                            , cmdDrawMultiIndexedEXT
-                                            , MultiDrawInfoEXT(..)
-                                            , MultiDrawIndexedInfoEXT(..)
-                                            , PhysicalDeviceMultiDrawPropertiesEXT(..)
-                                            , PhysicalDeviceMultiDrawFeaturesEXT(..)
-                                            , EXT_MULTI_DRAW_SPEC_VERSION
-                                            , pattern EXT_MULTI_DRAW_SPEC_VERSION
-                                            , EXT_MULTI_DRAW_EXTENSION_NAME
-                                            , pattern EXT_MULTI_DRAW_EXTENSION_NAME
-                                            ) where
-
-import Vulkan.Internal.Utils (traceAroundEvent)
-import Control.Monad (unless)
-import Control.Monad.IO.Class (liftIO)
-import Foreign.Marshal.Alloc (allocaBytes)
-import Foreign.Marshal.Utils (with)
-import GHC.IO (throwIO)
-import GHC.Ptr (nullFunPtr)
-import Foreign.Ptr (nullPtr)
-import Foreign.Ptr (plusPtr)
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Cont (evalContT)
-import qualified Data.Vector (imapM_)
-import qualified Data.Vector (length)
-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 Data.Int (Int32)
-import Foreign.Ptr (FunPtr)
-import Foreign.Ptr (Ptr)
-import Data.Word (Word32)
-import Data.Kind (Type)
-import Control.Monad.Trans.Cont (ContT(..))
-import Data.Vector (Vector)
-import Vulkan.Core10.FundamentalTypes (bool32ToBool)
-import Vulkan.Core10.FundamentalTypes (boolToBool32)
-import Vulkan.NamedType ((:::))
-import Vulkan.Core10.FundamentalTypes (Bool32)
-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(pVkCmdDrawMultiEXT))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMultiIndexedEXT))
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMultiEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawInfoEXT -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawInfoEXT -> Word32 -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMultiEXT - Draw primitives
---
--- = Description
---
--- @drawCount@ draws are executed with parameters taken from @pVertexInfo@.
--- The number of draw commands recorded is @drawCount@, with each command
--- reading, sequentially, a @firstVertex@ and a @vertexCount@ from
--- @pVertexInfo@.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMultiEXT-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08604# Descriptors in bound descriptor
---     buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08605# If a descriptor is dynamically
---     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08608# If a pipeline is bound to the
---     pipeline bind point used by this command, 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-vkCmdDrawMultiEXT-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiEXT-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiEXT-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMultiEXT-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiEXT-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07831# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07832# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07833# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08617# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08618# If a shader object is bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08619# If a shader object that outputs
---     line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07834# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08620# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07835# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08621# If a shader object is bound to
---     the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07836# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08622# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07837# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08623# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07838# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08624# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07839# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08625# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08626# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07840# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08627# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07841# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08628# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07843# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08629# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07844# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08630# If a shader object is bound to
---     any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07845# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08631# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07846# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08632# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07847# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08633# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07848# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08634# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08635# If a shader object is bound to
---     any graphics stage, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08636# If a shader object is bound to
---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
---     is enabled on the device, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08637# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07878# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07879# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08638# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08639# If a shader object is bound to
---     any graphics stage, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08640# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08641# If a shader object is bound to
---     any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08643# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMultiEXT-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08644# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07880# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07881# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMultiEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMultiEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMultiEXT-pNext-07935# If this command has been called
---     inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08651# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08652# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08653# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08654# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08657# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08658# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08659# If a shader object is bound to
---     any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08664# If the @VK_EXT_sample_locations@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08665# If the @VK_EXT_provoking_vertex@
---     extension is enabled, and a shader object is bound to the vertex
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07849# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMultiEXT-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08675# If the @VK_NV_viewport_swizzle@
---     extension is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-sampleLocationsEnable-07936# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07850# If dynamic state was inherited
---     from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08684# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08685# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08686# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08687# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08688# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08689# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08690# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08693# If there is no bound graphics
---     pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08694# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08695# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08696# If there is no bound graphics
---     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08698# If any graphics shader is bound
---     which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMultiEXT-None-08699# If any graphics shader is bound
---     which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMultiEXT-pDynamicStates-08715# If the bound graphics
---     pipeline state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMultiEXT-pDynamicStates-08716# If the bound graphics
---     pipeline state includes a fragment shader stage, was created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-02712# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, any resource written to by the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command /must/ not be an unprotected resource
---
--- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-02713# If @commandBuffer@ is a
---     protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, pipeline stages other than the framebuffer-space
---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
---     bound to the pipeline bind point used by this command /must/ not
---     write to any resource
---
--- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-04617# If any of the shader
---     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline
---     bind point used by this command uses the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
---     capability, then @commandBuffer@ /must/ not be a protected command
---     buffer
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04007# All vertex input bindings
---     accessed via vertex input variables declared in the vertex shader
---     entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-02721# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawMultiEXT-None-07842# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04912# If the bound graphics pipeline
---     was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawMultiEXT-pStrides-04913# If the bound graphics
---     pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04914# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawMultiEXT-Input-07939# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04875# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04879# If the bound graphics pipeline
---     state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiEXT-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMultiEXT-None-04933# The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw>
---     feature /must/ be enabled
---
--- -   #VUID-vkCmdDrawMultiEXT-drawCount-04934# @drawCount@ /must/ be less
---     than 'PhysicalDeviceMultiDrawPropertiesEXT'::@maxMultiDrawCount@
---
--- -   #VUID-vkCmdDrawMultiEXT-drawCount-04935# If @drawCount@ is greater
---     than zero, @pVertexInfo@ /must/ be a valid pointer to memory
---     containing one or more valid instances of 'MultiDrawInfoEXT'
---     structures
---
--- -   #VUID-vkCmdDrawMultiEXT-stride-04936# @stride@ must be a multiple of
---     4
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMultiEXT-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMultiEXT-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_EXT_multi_draw VK_EXT_multi_draw>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'MultiDrawInfoEXT'
-cmdDrawMultiEXT :: forall io
-                 . (MonadIO io)
-                => -- | @commandBuffer@ is the command buffer into which the command is
-                   -- recorded.
-                   CommandBuffer
-                -> -- | @pVertexInfo@ is a pointer to an array of 'MultiDrawInfoEXT' with vertex
-                   -- information to be drawn.
-                   ("vertexInfo" ::: Vector MultiDrawInfoEXT)
-                -> -- | @instanceCount@ is the number of instances to draw.
-                   ("instanceCount" ::: Word32)
-                -> -- | @firstInstance@ is the instance ID of the first instance to draw.
-                   ("firstInstance" ::: Word32)
-                -> -- | @stride@ is the byte stride between consecutive elements of
-                   -- @pVertexInfo@.
-                   ("stride" ::: Word32)
-                -> io ()
-cmdDrawMultiEXT commandBuffer
-                  vertexInfo
-                  instanceCount
-                  firstInstance
-                  stride = liftIO . evalContT $ do
-  let vkCmdDrawMultiEXTPtr = pVkCmdDrawMultiEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdDrawMultiEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMultiEXT is null" Nothing Nothing
-  let vkCmdDrawMultiEXT' = mkVkCmdDrawMultiEXT vkCmdDrawMultiEXTPtr
-  pPVertexInfo <- ContT $ allocaBytes @MultiDrawInfoEXT ((Data.Vector.length (vertexInfo)) * 8)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexInfo `plusPtr` (8 * (i)) :: Ptr MultiDrawInfoEXT) (e)) (vertexInfo)
-  lift $ traceAroundEvent "vkCmdDrawMultiEXT" (vkCmdDrawMultiEXT'
-                                                 (commandBufferHandle (commandBuffer))
-                                                 ((fromIntegral (Data.Vector.length $ (vertexInfo)) :: Word32))
-                                                 (pPVertexInfo)
-                                                 (instanceCount)
-                                                 (firstInstance)
-                                                 (stride))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMultiIndexedEXT
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawIndexedInfoEXT -> Word32 -> Word32 -> Word32 -> Ptr Int32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawIndexedInfoEXT -> Word32 -> Word32 -> Word32 -> Ptr Int32 -> IO ()
-
--- | vkCmdDrawMultiIndexedEXT - Draw primitives
---
--- = Description
---
--- @drawCount@ indexed draws are executed with parameters taken from
--- @pIndexInfo@. The number of draw commands recorded is @drawCount@, with
--- each command reading, sequentially, a @firstIndex@ and an @indexCount@
--- from @pIndexInfo@. If @pVertexOffset@ is @NULL@, a @vertexOffset@ is
--- also read from @pIndexInfo@, otherwise the value from dereferencing
--- @pVertexOffset@ is used.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08601# For each push constant
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08608# If a pipeline is bound to
---     the pipeline bind point used by this command, 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-vkCmdDrawMultiIndexedEXT-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiIndexedEXT-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiIndexedEXT-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMultiIndexedEXT-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiIndexedEXT-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08617# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08618# If a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08619# If a shader object that
---     outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08620# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08621# If a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08622# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08623# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08624# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08625# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08626# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08627# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08628# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08629# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08630# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08631# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08632# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08633# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08634# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08635# If a shader object is
---     bound to any graphics stage, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08636# If a shader object is
---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08637# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08638# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08639# If a shader object is
---     bound to any graphics stage, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08640# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08641# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08643# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08644# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMultiIndexedEXT-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
---     @rasterizationSamples@ for 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-vkCmdDrawMultiIndexedEXT-pNext-07935# If this command has been
---     called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08651# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08652# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08653# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08654# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08657# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08658# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08659# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08698# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08699# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712# If
---     @commandBuffer@ is a protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, any resource written to by the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command /must/ not be an unprotected resource
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713# If
---     @commandBuffer@ is a protected command buffer and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
---     is not supported, pipeline stages other than the framebuffer-space
---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
---     bound to the pipeline bind point used by this command /must/ not
---     write to any resource
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617# If any of the
---     shader stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command uses the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
---     capability, then @commandBuffer@ /must/ not be a protected command
---     buffer
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04007# All vertex input bindings
---     accessed via vertex input variables declared in the vertex shader
---     entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02721# For a given vertex buffer
---     binding, any attribute data fetched /must/ be entirely contained
---     within the corresponding vertex buffer binding, as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07842# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04912# If the bound graphics
---     pipeline was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913# If the bound graphics
---     pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04914# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-Input-07939# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04875# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #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-drawCount-04939# @drawCount@ /must/
---     be less than
---     'PhysicalDeviceMultiDrawPropertiesEXT'::@maxMultiDrawCount@
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940# If @drawCount@ is
---     greater than zero, @pIndexInfo@ /must/ be a valid pointer to memory
---     containing one or more valid instances of 'MultiDrawIndexedInfoEXT'
---     structures
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-stride-04941# @stride@ must be a
---     multiple of 4
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter# If
---     @pVertexOffset@ is not @NULL@, @pVertexOffset@ /must/ be a valid
---     pointer to a valid @int32_t@ value
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-renderpass# This command /must/ only
---     be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMultiIndexedEXT-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_EXT_multi_draw VK_EXT_multi_draw>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'MultiDrawIndexedInfoEXT'
-cmdDrawMultiIndexedEXT :: forall io
-                        . (MonadIO io)
-                       => -- | @commandBuffer@ is the command buffer into which the command is
-                          -- recorded.
-                          CommandBuffer
-                       -> -- | @pIndexInfo@ is a pointer to an array of 'MultiDrawIndexedInfoEXT' with
-                          -- index information to be drawn.
-                          ("indexInfo" ::: Vector MultiDrawIndexedInfoEXT)
-                       -> -- | @instanceCount@ is the number of instances to draw.
-                          ("instanceCount" ::: Word32)
-                       -> -- | @firstInstance@ is the instance ID of the first instance to draw.
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Mike Blumenkrantz
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_multi_draw] @zmike%0A*Here describe the issue or question you have about the VK_EXT_multi_draw extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-05-19
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Faith Ekstrand, INTEL
+--
+--     -   Spencer Fricke, SAMSUNG
+--
+--     -   Ricardo Garcia, IGALIA
+--
+--     -   Jon Leech, KHRONOS
+--
+--     -   Stu Smith, AMD
+--
+-- == Description
+--
+-- Processing multiple draw commands in sequence incurs measurable overhead
+-- within drivers due to repeated state checks and updates during dispatch.
+-- This extension enables passing the entire sequence of draws directly to
+-- the driver in order to avoid any such overhead, using an array of
+-- 'MultiDrawInfoEXT' or 'MultiDrawIndexedInfoEXT' structs with
+-- 'cmdDrawMultiEXT' or 'cmdDrawMultiIndexedEXT', respectively. These
+-- functions could be used any time multiple draw commands are being
+-- recorded without any state changes between them in order to maximize
+-- performance.
+--
+-- == New Commands
+--
+-- -   'cmdDrawMultiEXT'
+--
+-- -   'cmdDrawMultiIndexedEXT'
+--
+-- == New Structures
+--
+-- -   'MultiDrawIndexedInfoEXT'
+--
+-- -   'MultiDrawInfoEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMultiDrawFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMultiDrawPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_MULTI_DRAW_EXTENSION_NAME'
+--
+-- -   'EXT_MULTI_DRAW_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT'
+--
+-- == New or Modified Built-In Variables
+--
+-- -   (modified)@DrawIndex@
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-01-20 (Mike Blumenkrantz)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'MultiDrawIndexedInfoEXT', 'MultiDrawInfoEXT',
+-- 'PhysicalDeviceMultiDrawFeaturesEXT',
+-- 'PhysicalDeviceMultiDrawPropertiesEXT', 'cmdDrawMultiEXT',
+-- 'cmdDrawMultiIndexedEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_multi_draw  ( cmdDrawMultiEXT
+                                            , cmdDrawMultiIndexedEXT
+                                            , MultiDrawInfoEXT(..)
+                                            , MultiDrawIndexedInfoEXT(..)
+                                            , PhysicalDeviceMultiDrawPropertiesEXT(..)
+                                            , PhysicalDeviceMultiDrawFeaturesEXT(..)
+                                            , EXT_MULTI_DRAW_SPEC_VERSION
+                                            , pattern EXT_MULTI_DRAW_SPEC_VERSION
+                                            , EXT_MULTI_DRAW_EXTENSION_NAME
+                                            , pattern EXT_MULTI_DRAW_EXTENSION_NAME
+                                            ) where
+
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Utils (with)
+import GHC.IO (throwIO)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+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 Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.FundamentalTypes (Bool32)
+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(pVkCmdDrawMultiEXT))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMultiIndexedEXT))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMultiEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawInfoEXT -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawInfoEXT -> Word32 -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMultiEXT - Draw primitives
+--
+-- = Description
+--
+-- The number of draws recorded is @drawCount@, with each draw reading,
+-- sequentially, a @firstVertex@ and a @vertexCount@ from @pVertexInfo@.
+-- For each recorded draw, primitives are assembled as for
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDraw', and drawn @instanceCount@
+-- times with @instanceIndex@ starting with @firstInstance@ and
+-- sequentially for each instance.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08601# For each push constant that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMultiEXT-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08604# Descriptors in bound descriptor
+--     buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08605# If a descriptor is dynamically
+--     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08608# If a pipeline is bound to the
+--     pipeline bind point used by this command, 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-vkCmdDrawMultiEXT-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMultiEXT-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMultiEXT-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMultiEXT-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMultiEXT-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMultiEXT-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMultiEXT-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-09000# If a color attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09001# If a depth attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09003# If an attachment is written by
+--     any prior command in this subpass or by the load, store, or resolve
+--     operations for this subpass, it /must/ not be accessed in any way
+--     other than as an attachment, storage image, or sampled image by this
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass in any way other than as an
+--     attachment, this command /must/ not write to that image subresource
+--     as an attachment
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07831# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07832# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07833# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08617# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08618# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08619# If a shader object that outputs
+--     line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07834# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08620# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07835# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08621# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07836# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08622# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07837# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08623# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07838# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08624# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07839# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08625# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08626# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07840# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08627# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07841# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08628# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07843# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08629# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07844# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08630# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07845# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08631# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07846# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08632# If a shader object is bound to
+--     any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07847# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08633# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07848# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08634# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08635# If a shader object is bound to
+--     any graphics stage, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-09232# If a shader object is bound to
+--     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
+--     is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08636# If a shader object is bound to
+--     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension
+--     is enabled on the device, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-shadingRateImage-09234# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08637# If a shader object is bound to
+--     any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07878# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07879# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08638# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08639# If a shader object is bound to
+--     any graphics stage, 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08640# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08641# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08643# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08644# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08876# If a shader object is bound to
+--     any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMultiEXT-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09363# If there is no shader object
+--     bound to any graphics stage, the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09366# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pFragmentSize-09370# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pFragmentSize-09371# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-07880# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07881# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914# If
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917# If
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMultiEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMultiEXT-pNext-07935# If this command has been called
+--     inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-09237# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08651# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08652# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08653# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08654# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08657# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08658# If a shader object is bound to
+--     any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08659# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08664# If the @VK_EXT_sample_locations@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08665# If the @VK_EXT_provoking_vertex@
+--     extension is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07849# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08675# If the @VK_NV_viewport_swizzle@
+--     extension is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-rasterizationSamples-07474# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMultiEXT-None-09211# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-sampleLocationsEnable-07936# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-None-08877# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07850# If dynamic state was inherited
+--     from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08684# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08685# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08686# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08687# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08688# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08689# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08690# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08693# If there is no bound graphics
+--     pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08694# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08695# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08696# If there is no bound graphics
+--     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08698# If any graphics shader is bound
+--     which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08699# If any graphics shader is bound
+--     which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08880# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pDynamicStates-08715# If the bound graphics
+--     pipeline state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pDynamicStates-08716# If the bound graphics
+--     pipeline state includes a fragment shader stage, was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09116# If a shader object is bound to
+--     any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-02712# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, any resource written to by the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command /must/ not be an unprotected resource
+--
+-- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-02713# If @commandBuffer@ is a
+--     protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, pipeline stages other than the framebuffer-space
+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command /must/ not
+--     write to any resource
+--
+-- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-04617# If any of the shader
+--     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline
+--     bind point used by this command uses the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
+--     capability, then @commandBuffer@ /must/ not be a protected command
+--     buffer
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04007# All vertex input bindings
+--     accessed via vertex input variables declared in the vertex shader
+--     entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-02721# For a given vertex buffer
+--     binding, any attribute data fetched /must/ be entirely contained
+--     within the corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-07842# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04912# If the bound graphics pipeline
+--     was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08881# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04914# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-Input-07939# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-Input-08734# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-format-08936# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawMultiEXT-format-08937# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09203# If there is a shader object
+--     bound to a graphics stage or the currently bound graphics pipeline
+--     was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08882# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04875# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08883# If a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04879# If the bound graphics pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-08884# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiEXT-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-08885# There /must/ be no shader object
+--     bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-04933# The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdDrawMultiEXT-drawCount-04934# @drawCount@ /must/ be less
+--     than 'PhysicalDeviceMultiDrawPropertiesEXT'::@maxMultiDrawCount@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-drawCount-04935# If @drawCount@ is greater
+--     than zero, @pVertexInfo@ /must/ be a valid pointer to memory
+--     containing one or more valid instances of 'MultiDrawInfoEXT'
+--     structures
+--
+-- -   #VUID-vkCmdDrawMultiEXT-stride-04936# @stride@ must be a multiple of
+--     4
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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-vkCmdDrawMultiEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMultiEXT-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMultiEXT-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_EXT_multi_draw VK_EXT_multi_draw>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'MultiDrawInfoEXT'
+cmdDrawMultiEXT :: forall io
+                 . (MonadIO io)
+                => -- | @commandBuffer@ is the command buffer into which the command is
+                   -- recorded.
+                   CommandBuffer
+                -> -- | @pVertexInfo@ is a pointer to an array of 'MultiDrawInfoEXT' with vertex
+                   -- information to be drawn.
+                   ("vertexInfo" ::: Vector MultiDrawInfoEXT)
+                -> -- | @instanceCount@ is the number of instances per draw.
+                   ("instanceCount" ::: Word32)
+                -> -- | @firstInstance@ is the instance ID of the first instance in each draw.
+                   ("firstInstance" ::: Word32)
+                -> -- | @stride@ is the byte stride between consecutive elements of
+                   -- @pVertexInfo@.
+                   ("stride" ::: Word32)
+                -> io ()
+cmdDrawMultiEXT commandBuffer
+                  vertexInfo
+                  instanceCount
+                  firstInstance
+                  stride = liftIO . evalContT $ do
+  let vkCmdDrawMultiEXTPtr = pVkCmdDrawMultiEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdDrawMultiEXTPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMultiEXT is null" Nothing Nothing
+  let vkCmdDrawMultiEXT' = mkVkCmdDrawMultiEXT vkCmdDrawMultiEXTPtr
+  pPVertexInfo <- ContT $ allocaBytes @MultiDrawInfoEXT ((Data.Vector.length (vertexInfo)) * 8)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexInfo `plusPtr` (8 * (i)) :: Ptr MultiDrawInfoEXT) (e)) (vertexInfo)
+  lift $ traceAroundEvent "vkCmdDrawMultiEXT" (vkCmdDrawMultiEXT'
+                                                 (commandBufferHandle (commandBuffer))
+                                                 ((fromIntegral (Data.Vector.length $ (vertexInfo)) :: Word32))
+                                                 (pPVertexInfo)
+                                                 (instanceCount)
+                                                 (firstInstance)
+                                                 (stride))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMultiIndexedEXT
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawIndexedInfoEXT -> Word32 -> Word32 -> Word32 -> Ptr Int32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MultiDrawIndexedInfoEXT -> Word32 -> Word32 -> Word32 -> Ptr Int32 -> IO ()
+
+-- | vkCmdDrawMultiIndexedEXT - Draw primitives
+--
+-- = Description
+--
+-- The number of draws recorded is @drawCount@, with each draw reading,
+-- sequentially, a @firstIndex@ and an @indexCount@ from @pIndexInfo@. For
+-- each recorded draw, primitives are assembled as for
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed', and drawn
+-- @instanceCount@ times with @instanceIndex@ starting with @firstInstance@
+-- and sequentially for each instance. If @pVertexOffset@ is @NULL@, a
+-- @vertexOffset@ is also read from @pIndexInfo@, otherwise the value from
+-- dereferencing @pVertexOffset@ is used.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08601# For each push constant
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-vkCmdDrawMultiIndexedEXT-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMultiIndexedEXT-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMultiIndexedEXT-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMultiIndexedEXT-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMultiIndexedEXT-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978# If
+--     any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-09000# If a color attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09001# If a depth attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09002# If a stencil attachment
+--     is written by any prior command in this subpass or by the load,
+--     store, or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08617# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08618# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08619# If a shader object that
+--     outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08620# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08621# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08622# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08623# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08624# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08625# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08626# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08627# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08628# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08629# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08630# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08631# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08632# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08633# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08634# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08635# If a shader object is
+--     bound to any graphics stage, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-09232# If a shader object is
+--     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08636# If a shader object is
+--     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08637# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08638# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08639# If a shader object is
+--     bound to any graphics stage, 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08640# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08641# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08643# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08644# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08876# If a shader object is
+--     bound to any graphics stage, the current render pass instance /must/
+--     have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09363# If there is no shader
+--     object bound to any graphics stage, the current render pass instance
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09364# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09365# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09366# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367# If there
+--     is a shader object bound to any graphics stage, and the current
+--     render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09368# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09369# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMultiIndexedEXT-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMultiIndexedEXT-pNext-07935# If this command has been
+--     called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-09237# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08651# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08652# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08653# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08654# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08657# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08658# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08659# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMultiIndexedEXT-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08698# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08699# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08880# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09116# If a shader object is
+--     bound to any graphics stage or the currently bound graphics pipeline
+--     was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712# If
+--     @commandBuffer@ is a protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, any resource written to by the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command /must/ not be an unprotected resource
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713# If
+--     @commandBuffer@ is a protected command buffer and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>
+--     is not supported, pipeline stages other than the framebuffer-space
+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object
+--     bound to the pipeline bind point used by this command /must/ not
+--     write to any resource
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617# If any of the
+--     shader stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the
+--     pipeline bind point used by this command uses the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
+--     capability, then @commandBuffer@ /must/ not be a protected command
+--     buffer
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04007# All vertex input bindings
+--     accessed via vertex input variables declared in the vertex shader
+--     entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02721# For a given vertex buffer
+--     binding, any attribute data fetched /must/ be entirely contained
+--     within the corresponding vertex buffer binding, as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07842# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04912# If the bound graphics
+--     pipeline was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913# If the bound graphics
+--     pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08881# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04914# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-Input-07939# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-Input-08734# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-format-08936# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-format-08937# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09203# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08882# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04875# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08883# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-08884# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08885# There /must/ be no shader
+--     object bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #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-robustBufferAccess2-08798# 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' or
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is
+--     used to bind the index buffer, the size of the bound index buffer is
+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@
+--
+-- -   #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-drawCount-04939# @drawCount@ /must/
+--     be less than
+--     'PhysicalDeviceMultiDrawPropertiesEXT'::@maxMultiDrawCount@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940# If @drawCount@ is
+--     greater than zero, @pIndexInfo@ /must/ be a valid pointer to memory
+--     containing one or more valid instances of 'MultiDrawIndexedInfoEXT'
+--     structures
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stride-04941# @stride@ must be a
+--     multiple of 4
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter# If
+--     @pVertexOffset@ is not @NULL@, @pVertexOffset@ /must/ be a valid
+--     pointer to a valid @int32_t@ value
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-renderpass# This command /must/ only
+--     be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-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_EXT_multi_draw VK_EXT_multi_draw>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'MultiDrawIndexedInfoEXT'
+cmdDrawMultiIndexedEXT :: forall io
+                        . (MonadIO io)
+                       => -- | @commandBuffer@ is the command buffer into which the command is
+                          -- recorded.
+                          CommandBuffer
+                       -> -- | @pIndexInfo@ is a pointer to an array of 'MultiDrawIndexedInfoEXT' with
+                          -- index information to be drawn.
+                          ("indexInfo" ::: Vector MultiDrawIndexedInfoEXT)
+                       -> -- | @instanceCount@ is the number of instances per draw.
+                          ("instanceCount" ::: Word32)
+                       -> -- | @firstInstance@ is the instance ID of the first instance in each draw.
                           ("firstInstance" ::: Word32)
                        -> -- | @stride@ is the byte stride between consecutive elements of
                           -- @pIndexInfo@.
diff --git a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs
--- a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs
+++ b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
 --     and
@@ -382,8 +385,9 @@
     -- rendering to single-sampled attachments is performed as described
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampled below>.
     multisampledRenderToSingleSampledEnable :: Bool
-  , -- | @rasterizationSamples@ is a VkSampleCountFlagBits specifying the number
-    -- of samples used in rasterization.
+  , -- | @rasterizationSamples@ is a
+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying
+    -- the number of samples used in rasterization.
     rasterizationSamples :: SampleCountFlagBits
   }
   deriving (Typeable, Eq)
diff --git a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs
--- a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs
+++ b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 VK_KHR_maintenance3>
 --
@@ -185,7 +188,8 @@
 --
 -- = Description
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
diff --git a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 VK_KHR_maintenance3>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs
@@ -0,0 +1,331 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_nested_command_buffer - device extension
+--
+-- == VK_EXT_nested_command_buffer
+--
+-- [__Name String__]
+--     @VK_EXT_nested_command_buffer@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     452
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_nested_command_buffer] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_nested_command_buffer extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-18
+--
+-- [__Contributors__]
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Peter Kohaut, NVIDIA
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Slawomir Grajewski, Intel
+--
+--     -   Stu Smith, AMD
+--
+-- == Description
+--
+-- With core Vulkan it is not legal to call
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' when recording
+-- a secondary command buffer. This extension relaxes that restriction,
+-- allowing secondary command buffers to execute other secondary command
+-- buffers.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceNestedCommandBufferFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME'
+--
+-- -   'EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
+--
+--     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents':
+--
+--     -   'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--
+-- == Issues
+--
+-- 1) The Command Buffer Levels property for the Vulkan commands comes from
+-- the @cmdbufferlevel@ attribute in @vk.xml@ for the command, and it is
+-- currently not possible to modify this attribute based on whether an
+-- extension is enabled. For this extension we want the @cmdbufferlevel@
+-- attribute for vkCmdExecuteCommands to be @primary,secondary@ when this
+-- extension is enabled and @primary@ otherwise.
+--
+-- __RESOLVED__: The @cmdbufferlevel@ attribute for
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' has been
+-- changed to @primary,secondary@ and a new VUID added to prohibit
+-- recording this command in a secondary command buffer unless this
+-- extension is enabled.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-09-18 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceNestedCommandBufferFeaturesEXT',
+-- 'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_nested_command_buffer Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_nested_command_buffer  ( PhysicalDeviceNestedCommandBufferFeaturesEXT(..)
+                                                       , PhysicalDeviceNestedCommandBufferPropertiesEXT(..)
+                                                       , EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION
+                                                       , pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION
+                                                       , EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME
+                                                       , pattern EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME
+                                                       ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT))
+-- | VkPhysicalDeviceNestedCommandBufferFeaturesEXT - Structure describing
+-- whether nested command buffers are supported by the implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceNestedCommandBufferFeaturesEXT' 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. 'PhysicalDeviceNestedCommandBufferFeaturesEXT' /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_EXT_nested_command_buffer VK_EXT_nested_command_buffer>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceNestedCommandBufferFeaturesEXT = PhysicalDeviceNestedCommandBufferFeaturesEXT
+  { -- | #features-nestedCommandBuffer# @nestedCommandBuffer@ indicates the
+    -- implementation supports nested command buffers, which allows
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Secondary Command Buffers>
+    -- to execute other
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Secondary Command Buffers>.
+    nestedCommandBuffer :: Bool
+  , -- | #features-nestedCommandBufferRendering# @nestedCommandBufferRendering@
+    -- indicates that it is valid to call
+    -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' inside a
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Secondary Command Buffer>
+    -- recorded with
+    -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'.
+    nestedCommandBufferRendering :: Bool
+  , -- | #features-nestedCommandBufferSimultaneousUse#
+    -- @nestedCommandBufferSimultaneousUse@ indicates that the implementation
+    -- supports nested command buffers with command buffers that are recorded
+    -- with
+    -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'.
+    nestedCommandBufferSimultaneousUse :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceNestedCommandBufferFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceNestedCommandBufferFeaturesEXT
+
+instance ToCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceNestedCommandBufferFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (nestedCommandBuffer))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (nestedCommandBufferRendering))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (nestedCommandBufferSimultaneousUse))
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT where
+  peekCStruct p = do
+    nestedCommandBuffer <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    nestedCommandBufferRendering <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    nestedCommandBufferSimultaneousUse <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    pure $ PhysicalDeviceNestedCommandBufferFeaturesEXT
+             (bool32ToBool nestedCommandBuffer)
+             (bool32ToBool nestedCommandBufferRendering)
+             (bool32ToBool nestedCommandBufferSimultaneousUse)
+
+instance Storable PhysicalDeviceNestedCommandBufferFeaturesEXT where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceNestedCommandBufferFeaturesEXT where
+  zero = PhysicalDeviceNestedCommandBufferFeaturesEXT
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceNestedCommandBufferPropertiesEXT - Structure describing
+-- the nested command buffer limits of an implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+-- structure describe the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceNestedCommandBufferPropertiesEXT' 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_EXT_nested_command_buffer VK_EXT_nested_command_buffer>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceNestedCommandBufferPropertiesEXT = PhysicalDeviceNestedCommandBufferPropertiesEXT
+  { -- | #limits-maxCommandBufferNestingLevel# @maxCommandBufferNestingLevel@
+    -- indicates the maximum nesting level of calls to
+    -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' from
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Secondary Command Buffers>.
+    -- A @maxCommandBufferNestingLevel@ of @UINT32_MAX@ means there is no limit
+    -- to the nesting level.
+    maxCommandBufferNestingLevel :: Word32 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceNestedCommandBufferPropertiesEXT)
+#endif
+deriving instance Show PhysicalDeviceNestedCommandBufferPropertiesEXT
+
+instance ToCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceNestedCommandBufferPropertiesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxCommandBufferNestingLevel)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT where
+  peekCStruct p = do
+    maxCommandBufferNestingLevel <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pure $ PhysicalDeviceNestedCommandBufferPropertiesEXT
+             maxCommandBufferNestingLevel
+
+instance Storable PhysicalDeviceNestedCommandBufferPropertiesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceNestedCommandBufferPropertiesEXT where
+  zero = PhysicalDeviceNestedCommandBufferPropertiesEXT
+           zero
+
+
+type EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION"
+pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION = 1
+
+
+type EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME = "VK_EXT_nested_command_buffer"
+
+-- No documentation found for TopLevel "VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME"
+pattern EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME = "VK_EXT_nested_command_buffer"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot
@@ -0,0 +1,144 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_nested_command_buffer - device extension
+--
+-- == VK_EXT_nested_command_buffer
+--
+-- [__Name String__]
+--     @VK_EXT_nested_command_buffer@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     452
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_nested_command_buffer] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_nested_command_buffer extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-18
+--
+-- [__Contributors__]
+--
+--     -   Daniel Story, Nintendo
+--
+--     -   Peter Kohaut, NVIDIA
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Slawomir Grajewski, Intel
+--
+--     -   Stu Smith, AMD
+--
+-- == Description
+--
+-- With core Vulkan it is not legal to call
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' when recording
+-- a secondary command buffer. This extension relaxes that restriction,
+-- allowing secondary command buffers to execute other secondary command
+-- buffers.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceNestedCommandBufferFeaturesEXT'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME'
+--
+-- -   'EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits':
+--
+--     -   'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT'
+--
+-- -   Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents':
+--
+--     -   'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'
+--
+-- == Issues
+--
+-- 1) The Command Buffer Levels property for the Vulkan commands comes from
+-- the @cmdbufferlevel@ attribute in @vk.xml@ for the command, and it is
+-- currently not possible to modify this attribute based on whether an
+-- extension is enabled. For this extension we want the @cmdbufferlevel@
+-- attribute for vkCmdExecuteCommands to be @primary,secondary@ when this
+-- extension is enabled and @primary@ otherwise.
+--
+-- __RESOLVED__: The @cmdbufferlevel@ attribute for
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' has been
+-- changed to @primary,secondary@ and a new VUID added to prohibit
+-- recording this command in a secondary command buffer unless this
+-- extension is enabled.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-09-18 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceNestedCommandBufferFeaturesEXT',
+-- 'PhysicalDeviceNestedCommandBufferPropertiesEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_nested_command_buffer Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_nested_command_buffer  ( PhysicalDeviceNestedCommandBufferFeaturesEXT
+                                                       , PhysicalDeviceNestedCommandBufferPropertiesEXT
+                                                       ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceNestedCommandBufferFeaturesEXT
+
+instance ToCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT
+instance Show PhysicalDeviceNestedCommandBufferFeaturesEXT
+
+instance FromCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT
+
+
+data PhysicalDeviceNestedCommandBufferPropertiesEXT
+
+instance ToCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT
+instance Show PhysicalDeviceNestedCommandBufferPropertiesEXT
+
+instance FromCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs
--- a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs
+++ b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs
--- a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs
+++ b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
 --     and
@@ -258,7 +261,7 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT'
 --
--- == Reference code
+-- == Reference Code
 --
 -- > uint32_t BarycentricsToSpaceFillingCurveIndex(float u, float v, uint32_t level)
 -- > {
@@ -617,13 +620,25 @@
 -- that can be built into a micromap is determined by the parameters of
 -- 'MicromapCreateInfoEXT'.
 --
--- Populating the data in the object after allocating and binding memory is
--- done with commands such as 'cmdBuildMicromapsEXT', 'buildMicromapsEXT',
+-- The micromap data is stored in the object referred to by
+-- 'MicromapCreateInfoEXT'::@buffer@. Once memory has been bound to that
+-- buffer, it /must/ be populated by micromap build or micromap copy
+-- commands such as 'cmdBuildMicromapsEXT', 'buildMicromapsEXT',
 -- 'cmdCopyMicromapEXT', and 'copyMicromapEXT'.
 --
+-- Note
+--
+-- The expected usage for a trace capture\/replay tool is that it will
+-- serialize and later deserialize the micromap data using micromap copy
+-- commands. During capture the tool will use 'copyMicromapToMemoryEXT' or
+-- 'cmdCopyMicromapToMemoryEXT' with a @mode@ of
+-- 'COPY_MICROMAP_MODE_SERIALIZE_EXT', and 'copyMemoryToMicromapEXT' or
+-- 'cmdCopyMemoryToMicromapEXT' with a @mode@ of
+-- 'COPY_MICROMAP_MODE_DESERIALIZE_EXT' during replay.
+--
 -- The input buffers passed to micromap build commands will be referenced
 -- by the implementation for the duration of the command. Micromaps /must/
--- be fully self-contained. The application /may/ re-use or free any memory
+-- be fully self-contained. The application /can/ reuse or free any memory
 -- which was used by the command as an input or as scratch without
 -- affecting the results of a subsequent acceleration structure build using
 -- the micromap or traversal of that acceleration structure.
@@ -2252,6 +2267,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180#
+--     'MicromapBuildInfoEXT'::@dstMicromap@ /must/ have been created from
+--     @device@
+--
 -- -   #VUID-vkGetMicromapBuildSizesEXT-micromap-07439# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromap micromap>
 --     feature /must/ be enabled
@@ -3465,6 +3484,7 @@
 --     @usageCountsCount@ valid pointers to 'MicromapUsageEXT' structures
 --
 -- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameter#
+--     If @micromap@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
 --     @micromap@ /must/ be a valid 'Vulkan.Extensions.Handles.MicromapEXT'
 --     handle
 --
@@ -3526,7 +3546,6 @@
     lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)
     lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
     lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr)
-    lift $ poke ((p `plusPtr` 64 :: Ptr MicromapEXT)) (zero)
     lift $ f
 
 instance Zero AccelerationStructureTrianglesOpacityMicromapEXT where
diff --git a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
 --     and
@@ -258,7 +261,7 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT'
 --
--- == Reference code
+-- == Reference Code
 --
 -- > uint32_t BarycentricsToSpaceFillingCurveIndex(float u, float v, uint32_t level)
 -- > {
diff --git a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs
--- a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priority VK_EXT_memory_priority>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priority VK_EXT_memory_priority>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs
--- a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs
--- a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs
+++ b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
 --
@@ -79,7 +82,8 @@
 -- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
 --     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
 --     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
---     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX':
 --
 --     -   'PipelineCreationFeedbackCreateInfoEXT'
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs b/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs
--- a/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs
+++ b/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Daniel Koch
diff --git a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs
--- a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs
+++ b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs
--- a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs
+++ b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_private_data.hs b/src/Vulkan/Extensions/VK_EXT_private_data.hs
--- a/src/Vulkan/Extensions/VK_EXT_private_data.hs
+++ b/src/Vulkan/Extensions/VK_EXT_private_data.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs
--- a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs
+++ b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs b/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs
--- a/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs
+++ b/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs
--- a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs
+++ b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs
--- a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs
+++ b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_robustness2.hs b/src/Vulkan/Extensions/VK_EXT_robustness2.hs
--- a/src/Vulkan/Extensions/VK_EXT_robustness2.hs
+++ b/src/Vulkan/Extensions/VK_EXT_robustness2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -166,7 +169,8 @@
 --
 -- = Description
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
diff --git a/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot b/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs
--- a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs
+++ b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs b/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs
--- a/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs
+++ b/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs b/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs
--- a/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs
+++ b/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs b/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs
--- a/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs
+++ b/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float VK_EXT_shader_atomic_float>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float VK_EXT_shader_atomic_float>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -586,7 +589,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PipelineShaderStageModuleIdentifierCreateInfoEXT = PipelineShaderStageModuleIdentifierCreateInfoEXT
-  { -- | @pIdentifier@ points to a buffer of opaque data specifying an
+  { -- | @pIdentifier@ is a pointer to a buffer of opaque data specifying an
     -- identifier.
     identifier :: Vector Word8 }
   deriving (Typeable)
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_object.hs b/src/Vulkan/Extensions/VK_EXT_shader_object.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_object.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_object.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
@@ -112,8 +115,9 @@
 --
 -- This extension introduces a new 'Vulkan.Extensions.Handles.ShaderEXT'
 -- object type which represents a single compiled shader stage. Shader
--- objects can be used as a more flexible but comparably performant
--- alternative to 'Vulkan.Core10.Handles.Pipeline' objects.
+-- objects provide a more flexible alternative to
+-- 'Vulkan.Core10.Handles.Pipeline' objects, which may be helpful in
+-- certain use cases.
 --
 -- == New Object Types
 --
@@ -139,18 +143,6 @@
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'
@@ -197,16 +189,12 @@
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT'
@@ -215,10 +203,6 @@
 --
 -- -   'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'
 --
 -- -   'createShadersEXT'
@@ -227,6 +211,54 @@
 --
 -- -   'getShaderBinaryDataEXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--
 -- == New Structures
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT'
@@ -293,6 +325,54 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'
+--
+--     -   'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group VK_KHR_device_group>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_DISPATCH_BASE_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT'
+--
 -- == Examples
 --
 -- __Example 1__
@@ -352,7 +432,7 @@
 -- > VkResult result;
 -- > VkShaderEXT shaders[2];
 -- >
--- > result = vkCmdCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders);
+-- > result = vkCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders);
 -- > if (result != VK_SUCCESS)
 -- > {
 -- >     // Handle error
@@ -381,8 +461,8 @@
 -- >
 -- > // Equivalent to the previous line. Linked shaders can be bound one at a time,
 -- > // in any order:
--- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]);
--- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]);
+-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]);
+-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]);
 -- >
 -- > // The above is sufficient to draw if the device was created with the
 -- > // tessellationShader and geometryShader features disabled. Otherwise, since
@@ -401,6 +481,9 @@
 -- > // shaders are unbound
 -- > vkCmdBindShadersEXT(commandBuffer, 3, unusedStages, NULL);
 -- >
+-- > // Graphics shader objects may only be used to draw inside dynamic render pass
+-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun
+-- >
 -- > // Draw a triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
 --
@@ -516,7 +599,7 @@
 -- > VkResult result;
 -- > VkShaderEXT shaders[5];
 -- >
--- > result = vkCmdCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders);
+-- > result = vkCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders);
 -- > if (result != VK_SUCCESS)
 -- > {
 -- >     // Handle error
@@ -534,33 +617,43 @@
 -- > // Assume vertex buffers, descriptor sets, etc. have been bound, and existing
 -- > // state setting commands have been called to set all required state
 -- >
--- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT;
--- > const VkShaderStageFlagBits geometryStage = VK_SHADER_STAGE_VERTEX_BIT;
--- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_VERTEX_BIT;
--- >
--- > // Bind unlinked vertex shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[0]);
+-- > const VkShaderStageFlagBits stages[3] =
+-- > {
+-- >     // Any order is allowed
+-- >     VK_SHADER_STAGE_FRAGMENT_BIT,
+-- >     VK_SHADER_STAGE_VERTEX_BIT,
+-- >     VK_SHADER_STAGE_GEOMETRY_BIT,
+-- > };
 -- >
--- > // Bind unlinked fragment shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]);
+-- > VkShaderEXT bindShaders[3] =
+-- > {
+-- >     shaders[2], // FS
+-- >     shaders[1], // VS
+-- >     shaders[0]  // GS
+-- > };
 -- >
--- > // Bind unlinked geometry shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &geometryStage, &shaders[2]);
+-- > // Bind unlinked shaders
+-- > vkCmdBindShadersEXT(commandBuffer, 3, stages, bindShaders);
 -- >
 -- > // Assume the tessellationShader feature is disabled, so vkCmdBindShadersEXT()
 -- > // need not have been called with either tessellation stage
 -- >
+-- > // Graphics shader objects may only be used to draw inside dynamic render pass
+-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun
+-- >
 -- > // Draw a triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
 -- >
 -- > // Bind a different unlinked fragment shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[4]);
+-- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_FRAGMENT_BIT;
+-- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]);
 -- >
 -- > // Draw another triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
 -- >
 -- > // Bind a different unlinked vertex shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[1]);
+-- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT;
+-- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[4]);
 -- >
 -- > // Draw another triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
@@ -591,12 +684,6 @@
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',
@@ -620,17 +707,13 @@
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT',
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT',
 -- 'createShadersEXT', 'destroyShaderEXT', 'getShaderBinaryDataEXT'
 --
@@ -652,12 +735,12 @@
                                                , ShaderCreateInfoEXT(..)
                                                , ShaderCreateFlagsEXT
                                                , ShaderCreateFlagBitsEXT( SHADER_CREATE_LINK_STAGE_BIT_EXT
-                                                                        , SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
-                                                                        , SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
-                                                                        , SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
-                                                                        , SHADER_CREATE_DISPATCH_BASE_BIT_EXT
-                                                                        , SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
                                                                         , SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+                                                                        , SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
+                                                                        , SHADER_CREATE_DISPATCH_BASE_BIT_EXT
+                                                                        , SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
+                                                                        , SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
+                                                                        , SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
                                                                         , ..
                                                                         )
                                                , ShaderCodeTypeEXT( SHADER_CODE_TYPE_BINARY_EXT
@@ -934,9 +1017,9 @@
 -- This means that whenever shader creation fails, the application /can/
 -- determine which shader the returned error pertains to by locating the
 -- first 'Vulkan.Core10.APIConstants.NULL_HANDLE' element in @pShaders@. It
--- also means that an application /can/ always clean up from a failed call
--- by iterating over the @pShaders@ array and destroying every element that
--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+-- also means that an application /can/ reliably clean up from a failed
+-- call by iterating over the @pShaders@ array and destroying every element
+-- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
 --
 -- == Valid Usage
 --
@@ -1007,6 +1090,76 @@
 --     of all elements of @pCreateInfos@ whose @flags@ member includes
 --     'SHADER_CREATE_LINK_STAGE_BIT_EXT' /must/ be the same
 --
+-- -   #VUID-vkCreateShadersEXT-pCreateInfos-08867# If @pCreateInfos@
+--     contains elements with both
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     and
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT',
+--     both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying
+--     the type of subdivision, it /must/ match the subdivision type
+--     specified in the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage
+--
+-- -   #VUID-vkCreateShadersEXT-pCreateInfos-08868# If @pCreateInfos@
+--     contains elements with both
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     and
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT',
+--     both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying
+--     the orientation of triangles, it /must/ match the triangle
+--     orientation specified in the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage
+--
+-- -   #VUID-vkCreateShadersEXT-pCreateInfos-08869# If @pCreateInfos@
+--     contains elements with both
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     and
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT',
+--     both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying
+--     @PointMode@, the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage /must/ also contain an @OpExecutionMode@ instruction
+--     specifying @PointMode@
+--
+-- -   #VUID-vkCreateShadersEXT-pCreateInfos-08870# If @pCreateInfos@
+--     contains elements with both
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     and
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT',
+--     both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying
+--     the spacing of segments on the edges of tessellated primitives, it
+--     /must/ match the segment spacing specified in the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage
+--
+-- -   #VUID-vkCreateShadersEXT-pCreateInfos-08871# If @pCreateInfos@
+--     contains elements with both
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     and
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT',
+--     both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying
+--     the output patch size, it /must/ match the output patch size
+--     specified in the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCreateShadersEXT-device-parameter# @device@ /must/ be a
@@ -1226,6 +1379,9 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>
 --     feature /must/ be enabled
 --
+-- -   #VUID-vkGetShaderBinaryDataEXT-None-08499# If @pData@ is not @NULL@,
+--     it /must/ be aligned to @16@ bytes
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetShaderBinaryDataEXT-device-parameter# @device@ /must/ be
@@ -1396,6 +1552,20 @@
 --     and @pShaders@ is not @NULL@, the same index in @pShaders@ /must/ be
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
+-- -   #VUID-vkCmdBindShadersEXT-pShaders-08490# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is not enabled, and @pStages@ contains
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT',
+--     and @pShaders@ is not @NULL@, the same index in @pShaders@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdBindShadersEXT-pShaders-08491# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is not enabled, and @pStages@ contains
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
+--     and @pShaders@ is not @NULL@, the same index in @pShaders@ /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
 -- -   #VUID-vkCmdBindShadersEXT-pShaders-08476# If @pStages@ contains
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
 --     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
@@ -1480,14 +1650,15 @@
                   => -- | @commandBuffer@ is the command buffer that the shader object will be
                      -- bound to.
                      CommandBuffer
-                  -> -- | @pStages@ is an array of
+                  -> -- | @pStages@ is a pointer to an array of
                      -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
                      -- specifying one stage per array index that is affected by the
                      -- corresponding value in the @pShaders@ array.
                      ("stages" ::: Vector ShaderStageFlagBits)
-                  -> -- | @pShaders@ is an array of 'Vulkan.Extensions.Handles.ShaderEXT' handles
-                     -- and\/or 'Vulkan.Core10.APIConstants.NULL_HANDLE' values describing the
-                     -- shader binding operations to be performed on each stage in @pStages@.
+                  -> -- | @pShaders@ is a pointer to an array of
+                     -- 'Vulkan.Extensions.Handles.ShaderEXT' handles and\/or
+                     -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' values describing the shader
+                     -- binding operations to be performed on each stage in @pStages@.
                      ("shaders" ::: Vector ShaderEXT)
                   -> io ()
 cmdBindShadersEXT commandBuffer stages shaders = liftIO . evalContT $ do
@@ -1669,6 +1840,54 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-VkShaderCreateInfoEXT-codeSize-08735# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @codeSize@ /must/ be a multiple of 4
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08736# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ point to valid SPIR-V
+--     code, formatted and packed as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08737# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ adhere to the
+--     validation rules described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>
+--     section of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     appendix
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08738# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ declare the @Shader@
+--     capability for SPIR-V code
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08739# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any
+--     capability that is not supported by the API, as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>
+--     section of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     appendix
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08740# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the
+--     capabilities listed in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>
+--     appendix, one of the corresponding requirements /must/ be satisfied
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08741# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any SPIR-V
+--     extension that is not supported by the API, as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions Extension>
+--     section of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     appendix
+--
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08742# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the SPIR-V
+--     extensions listed in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>
+--     appendix, one of the corresponding requirements /must/ be satisfied
+--
 -- -   #VUID-VkShaderCreateInfoEXT-flags-08412# If @stage@ is not
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT',
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
@@ -1693,18 +1912,20 @@
 -- -   #VUID-VkShaderCreateInfoEXT-flags-08488# If @stage@ is not
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',
 --     @flags@ /must/ not include
---     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+--     'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
 --
 -- -   #VUID-VkShaderCreateInfoEXT-flags-08489# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>
 --     feature is not enabled, @flags@ /must/ not include
 --     'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
 --
--- -   #VUID-VkShaderCreateInfoEXT-flags-08413# If @stage@ is not
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
---     @flags@ /must/ not include
---     'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' or
---     'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'
+-- -   #VUID-VkShaderCreateInfoEXT-flags-08992# If @flags@ includes
+--     'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT', @stage@ /must/ be
+--     one of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT',
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT',
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'
 --
 -- -   #VUID-VkShaderCreateInfoEXT-flags-08485# If @stage@ is not
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',
@@ -1768,16 +1989,14 @@
 --     and
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
 --
--- -   #VUID-VkShaderCreateInfoEXT-nextStage-08428# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     and the
+-- -   #VUID-VkShaderCreateInfoEXT-nextStage-08428# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
 --     feature is not enabled, @nextStage@ /must/ not include
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
 --
--- -   #VUID-VkShaderCreateInfoEXT-nextStage-08429# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     and the
+-- -   #VUID-VkShaderCreateInfoEXT-nextStage-08429# If the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
 --     feature is not enabled, @nextStage@ /must/ not include
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
@@ -1794,13 +2013,6 @@
 --     and
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
 --
--- -   #VUID-VkShaderCreateInfoEXT-nextStage-08432# If @stage@ is
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     and the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is not enabled, @nextStage@ /must/ not include
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
 -- -   #VUID-VkShaderCreateInfoEXT-nextStage-08433# If @stage@ is
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',
 --     @nextStage@ /must/ not include any bits other than
@@ -1822,58 +2034,17 @@
 --     @nextStage@ /must/ not include any bits other than
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
 --
--- -   #VUID-VkShaderCreateInfoEXT-codeSize-08439# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', @codeSize@ /must/ be a multiple of 4
---
 -- -   #VUID-VkShaderCreateInfoEXT-pName-08440# If @codeType@ is
 --     'SHADER_CODE_TYPE_SPIRV_EXT', @pName@ /must/ be the name of an
 --     @OpEntryPoint@ in @pCode@ with an execution model that matches
 --     @stage@
 --
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08441# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ point to valid SPIR-V
---     code, formatted and packed as described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
---
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08442# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ adhere to the
---     validation rules described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>
---     section of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
---     appendix
---
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08443# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ declare the @Shader@
---     capability for SPIR-V code
---
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08444# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any
---     capability that is not supported by the API, as described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>
---     section of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
---     appendix
---
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08445# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the
---     capabilities listed in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>
---     appendix, one of the corresponding requirements /must/ be satisfied
---
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08446# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any SPIR-V
---     extension that is not supported by the API, as described by the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions Extension>
---     section of the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
---     appendix
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08492# If @codeType@ is
+--     'SHADER_CODE_TYPE_BINARY_EXT', @pCode@ /must/ be aligned to @16@
+--     bytes
 --
--- -   #VUID-VkShaderCreateInfoEXT-pCode-08447# If @codeType@ is
---     'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the SPIR-V
---     extensions listed in the
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>
---     appendix, one of the corresponding requirements /must/ be satisfied
+-- -   #VUID-VkShaderCreateInfoEXT-pCode-08493# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ be aligned to @4@ bytes
 --
 -- -   #VUID-VkShaderCreateInfoEXT-pCode-08448# If @codeType@ is
 --     'SHADER_CODE_TYPE_SPIRV_EXT', and the identified entry point
@@ -1971,6 +2142,30 @@
 --     @pSpecializationInfo@, if any, and then converting all
 --     specialization constants into fixed constants
 --
+-- -   #VUID-VkShaderCreateInfoEXT-codeType-08872# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying
+--     the type of subdivision
+--
+-- -   #VUID-VkShaderCreateInfoEXT-codeType-08873# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying
+--     the orientation of triangles generated by the tessellator
+--
+-- -   #VUID-VkShaderCreateInfoEXT-codeType-08874# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying
+--     the spacing of segments on the edges of tessellated primitives
+--
+-- -   #VUID-VkShaderCreateInfoEXT-codeType-08875# If @codeType@ is
+--     'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',
+--     @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying
+--     the output patch size
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkShaderCreateInfoEXT-sType-sType# @sType@ /must/ be
@@ -2036,7 +2231,7 @@
 data ShaderCreateInfoEXT (es :: [Type]) = ShaderCreateInfoEXT
   { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
     next :: Chain es
-  , -- | @flags@ is a bitmask of 'ShaderCreateFlagsEXT' describing additional
+  , -- | @flags@ is a bitmask of 'ShaderCreateFlagBitsEXT' describing additional
     -- parameters of the shader.
     flags :: ShaderCreateFlagsEXT
   , -- | @stage@ is a
@@ -2044,9 +2239,9 @@
     -- specifying a single shader stage.
     stage :: ShaderStageFlagBits
   , -- | @nextStage@ is a bitmask of
-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags' specifying
-    -- zero or more logically later stages which /may/ be used as a logically
-    -- next bound stage when drawing with the shader bound.
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying
+    -- zero or stages which /may/ be used as a logically next bound stage when
+    -- drawing with the shader bound.
     nextStage :: ShaderStageFlags
   , -- | @codeType@ is a 'ShaderCodeTypeEXT' value specifying the type of the
     -- shader code pointed to be @pCode@.
@@ -2225,26 +2420,19 @@
 newtype ShaderCreateFlagBitsEXT = ShaderCreateFlagBitsEXT Flags
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'SHADER_CREATE_LINK_STAGE_BIT_EXT' specifies that this stage is linked
--- to all other stages being created in the same 'createShadersEXT' call
--- whose 'ShaderCreateInfoEXT' structures have the
--- 'SHADER_CREATE_LINK_STAGE_BIT_EXT' flag set in @flags@.
+-- | 'SHADER_CREATE_LINK_STAGE_BIT_EXT' specifies that a shader is linked to
+-- all other shaders created in the same 'createShadersEXT' call whose
+-- 'ShaderCreateInfoEXT' structures\' @flags@ include
+-- 'SHADER_CREATE_LINK_STAGE_BIT_EXT'.
 pattern SHADER_CREATE_LINK_STAGE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000001
 
--- | 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' specifies that the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>
--- /may/ vary in the shader stage.
-pattern SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000002
-
--- | 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies that the
--- subgroup sizes /must/ be launched with all invocations active in the
--- compute stage.
-pattern SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000004
+-- | 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' specifies that a
+-- fragment shader /can/ be used with a fragment density map attachment.
+pattern SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000040
 
--- | 'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' specifies that the mesh shader
--- being created /must/ only be used without a task shader. Otherwise, the
--- mesh shader being created /must/ only be used with a task shader.
-pattern SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000008
+-- | 'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT' specifies that
+-- a fragment shader /can/ be used with a fragment shading rate attachment.
+pattern SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000020
 
 -- | 'SHADER_CREATE_DISPATCH_BASE_BIT_EXT' specifies that a compute shader
 -- /can/ be used with
@@ -2252,16 +2440,21 @@
 -- non-zero base workgroup.
 pattern SHADER_CREATE_DISPATCH_BASE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000010
 
--- | 'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT' specifies that
--- the fragment shader /can/ be used with a fragment shading rate
--- attachment.
-pattern SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000020
+-- | 'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' specifies that a mesh shader
+-- /must/ only be used without a task shader. Otherwise, the mesh shader
+-- /must/ only be used with a task shader.
+pattern SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000008
 
--- | 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' specifies that
--- the fragment shader /can/ be used with a fragment density map
--- attachment.
-pattern SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000040
+-- | 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies that the
+-- subgroup sizes /must/ be launched with all invocations active in a task,
+-- mesh, or compute shader.
+pattern SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000004
 
+-- | 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' specifies that the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>
+-- /may/ vary in a task, mesh, or compute shader.
+pattern SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000002
+
 conNameShaderCreateFlagBitsEXT :: String
 conNameShaderCreateFlagBitsEXT = "ShaderCreateFlagBitsEXT"
 
@@ -2275,28 +2468,28 @@
     , "LINK_STAGE_BIT_EXT"
     )
   ,
-    ( SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
-    , "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"
-    )
-  ,
-    ( SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
-    , "REQUIRE_FULL_SUBGROUPS_BIT_EXT"
+    ( SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+    , "FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
     )
   ,
-    ( SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
-    , "NO_TASK_SHADER_BIT_EXT"
+    ( SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
+    , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT"
     )
   ,
     ( SHADER_CREATE_DISPATCH_BASE_BIT_EXT
     , "DISPATCH_BASE_BIT_EXT"
     )
   ,
-    ( SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
-    , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT"
+    ( SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
+    , "NO_TASK_SHADER_BIT_EXT"
     )
   ,
-    ( SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
-    , "FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
+    ( SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
+    , "REQUIRE_FULL_SUBGROUPS_BIT_EXT"
+    )
+  ,
+    ( SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
+    , "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"
     )
   ]
 
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
@@ -112,8 +115,9 @@
 --
 -- This extension introduces a new 'Vulkan.Extensions.Handles.ShaderEXT'
 -- object type which represents a single compiled shader stage. Shader
--- objects can be used as a more flexible but comparably performant
--- alternative to 'Vulkan.Core10.Handles.Pipeline' objects.
+-- objects provide a more flexible alternative to
+-- 'Vulkan.Core10.Handles.Pipeline' objects, which may be helpful in
+-- certain use cases.
 --
 -- == New Object Types
 --
@@ -139,18 +143,6 @@
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'
@@ -197,16 +189,12 @@
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT'
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT'
@@ -215,10 +203,6 @@
 --
 -- -   'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
 --
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---
--- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'
 --
 -- -   'createShadersEXT'
@@ -227,6 +211,54 @@
 --
 -- -   'getShaderBinaryDataEXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling VK_NV_clip_space_w_scaling>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test VK_NV_representative_fragment_test>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--
 -- == New Structures
 --
 -- -   'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT'
@@ -293,6 +325,54 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'
+--
+--     -   'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group VK_KHR_device_group>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_DISPATCH_BASE_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
+-- is supported:
+--
+-- -   Extending 'ShaderCreateFlagBitsEXT':
+--
+--     -   'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT'
+--
 -- == Examples
 --
 -- __Example 1__
@@ -352,7 +432,7 @@
 -- > VkResult result;
 -- > VkShaderEXT shaders[2];
 -- >
--- > result = vkCmdCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders);
+-- > result = vkCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders);
 -- > if (result != VK_SUCCESS)
 -- > {
 -- >     // Handle error
@@ -381,8 +461,8 @@
 -- >
 -- > // Equivalent to the previous line. Linked shaders can be bound one at a time,
 -- > // in any order:
--- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]);
--- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]);
+-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]);
+-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]);
 -- >
 -- > // The above is sufficient to draw if the device was created with the
 -- > // tessellationShader and geometryShader features disabled. Otherwise, since
@@ -401,6 +481,9 @@
 -- > // shaders are unbound
 -- > vkCmdBindShadersEXT(commandBuffer, 3, unusedStages, NULL);
 -- >
+-- > // Graphics shader objects may only be used to draw inside dynamic render pass
+-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun
+-- >
 -- > // Draw a triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
 --
@@ -516,7 +599,7 @@
 -- > VkResult result;
 -- > VkShaderEXT shaders[5];
 -- >
--- > result = vkCmdCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders);
+-- > result = vkCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders);
 -- > if (result != VK_SUCCESS)
 -- > {
 -- >     // Handle error
@@ -534,33 +617,43 @@
 -- > // Assume vertex buffers, descriptor sets, etc. have been bound, and existing
 -- > // state setting commands have been called to set all required state
 -- >
--- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT;
--- > const VkShaderStageFlagBits geometryStage = VK_SHADER_STAGE_VERTEX_BIT;
--- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_VERTEX_BIT;
--- >
--- > // Bind unlinked vertex shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[0]);
+-- > const VkShaderStageFlagBits stages[3] =
+-- > {
+-- >     // Any order is allowed
+-- >     VK_SHADER_STAGE_FRAGMENT_BIT,
+-- >     VK_SHADER_STAGE_VERTEX_BIT,
+-- >     VK_SHADER_STAGE_GEOMETRY_BIT,
+-- > };
 -- >
--- > // Bind unlinked fragment shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]);
+-- > VkShaderEXT bindShaders[3] =
+-- > {
+-- >     shaders[2], // FS
+-- >     shaders[1], // VS
+-- >     shaders[0]  // GS
+-- > };
 -- >
--- > // Bind unlinked geometry shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &geometryStage, &shaders[2]);
+-- > // Bind unlinked shaders
+-- > vkCmdBindShadersEXT(commandBuffer, 3, stages, bindShaders);
 -- >
 -- > // Assume the tessellationShader feature is disabled, so vkCmdBindShadersEXT()
 -- > // need not have been called with either tessellation stage
 -- >
+-- > // Graphics shader objects may only be used to draw inside dynamic render pass
+-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun
+-- >
 -- > // Draw a triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
 -- >
 -- > // Bind a different unlinked fragment shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[4]);
+-- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_FRAGMENT_BIT;
+-- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]);
 -- >
 -- > // Draw another triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
 -- >
 -- > // Bind a different unlinked vertex shader
--- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[1]);
+-- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT;
+-- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[4]);
 -- >
 -- > // Draw another triangle
 -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0);
@@ -591,12 +684,6 @@
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',
@@ -620,17 +707,13 @@
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT',
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV',
--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV',
 -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT',
 -- 'createShadersEXT', 'destroyShaderEXT', 'getShaderBinaryDataEXT'
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs b/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Dominik Witczak
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-new-features Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-new-features Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
 --
@@ -42,7 +45,7 @@
 --         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_tile_image.html SPV_EXT_shader_tile_image>
 --
 --     -   This extension provides API support for
---         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
+--         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GLSL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
 --
 -- [__Contributors__]
 --
@@ -303,7 +306,7 @@
   , -- | @shaderTileImageReadSampleFromPixelRateInvocation@ is a boolean that
     -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if reading from samples
     -- from a pixel rate fragment invocation is supported when
-    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::rasterizationSamples
+    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@
     -- > 1.
     shaderTileImageReadSampleFromPixelRateInvocation :: Bool
   , -- | @shaderTileImageReadFromHelperInvocation@ is a boolean that will be
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
 --
@@ -42,7 +45,7 @@
 --         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_tile_image.html SPV_EXT_shader_tile_image>
 --
 --     -   This extension provides API support for
---         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
+--         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GLSL_EXT_shader_tile_image.txt GL_EXT_shader_tile_image>
 --
 -- [__Contributors__]
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs b/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs
--- a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs
+++ b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs b/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs
--- a/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs
+++ b/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -39,7 +42,13 @@
 --
 -- == Description
 --
--- To be done.
+-- This extension expands 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR'
+-- to add support for most standard color spaces beyond
+-- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_SRGB_NONLINEAR_KHR'. This
+-- extension also adds support for
+-- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_PASS_THROUGH_EXT' which
+-- allows applications to use color spaces not explicitly enumerated in
+-- 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR'.
 --
 -- == New Enum Constants
 --
@@ -87,12 +96,12 @@
 -- __RESOLVED__: Pixel format is independent of color space (though some
 -- color spaces really want \/ need floating point color components to be
 -- useful). Therefore, do not plan on documenting what formats support
--- which colorspaces. An application /can/ call
+-- which color spaces. An application /can/ call
 -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceFormatsKHR' to
 -- query what a particular implementation supports.
 --
 -- 2) How does application determine if HW supports appropriate transfer
--- function for a colorspace?
+-- function for a color space?
 --
 -- __RESOLVED__: Extension indicates that implementation /must/ not do the
 -- OETF encoding if it is not sRGB. That responsibility falls to the
@@ -117,7 +126,7 @@
 --
 -- -   Revision 4, 2019-04-26 (Graeme Leese)
 --
---     -   Clarify colorspace transfer function usage.
+--     -   Clarify color space transfer function usage.
 --
 --     -   Refer to normative definitions in the Data Format Specification.
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs
--- a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs
+++ b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -447,9 +450,10 @@
 -- reset by the presentation engine.
 --
 -- The application /can/ destroy the wait semaphores associated with a
--- given presentation operation when the associated fence is signaled, and
--- /can/ destroy the swapchain when the fences associated with all past
--- presentation requests have signaled.
+-- given presentation operation when at least one of the associated fences
+-- is signaled, and /can/ destroy the swapchain when the fences associated
+-- with all past presentation requests referring to that swapchain have
+-- signaled.
 --
 -- Fences associated with presentations to the same swapchain on the same
 -- 'Vulkan.Core10.Handles.Queue' /must/ be signaled in the same order as
@@ -700,7 +704,7 @@
 --
 -- -   #VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761# Each entry
 --     in @pPresentModes@ must be a presentation mode specified in
---     'SwapchainPresentModesCreateInfoEXT'::pPresentModes when creating
+--     'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ when creating
 --     the entry’s corresponding swapchain
 --
 -- == Valid Usage (Implicit)
diff --git a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs
--- a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs
+++ b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs
--- a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs
+++ b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs
--- a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs
+++ b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -901,7 +904,7 @@
 -- == Valid Usage
 --
 -- -   #VUID-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the
---     command /must/ be unavailable
+--     command /must/ be /unavailable/
 --
 -- -   #VUID-vkCmdBeginQueryIndexedEXT-queryType-02804# The @queryType@
 --     used to create @queryPool@ /must/ not be
@@ -1312,13 +1315,13 @@
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT',
 --     @index@ /must/ equal the @index@ used to begin the query
 --
--- -   [[VUID-{refpage}-None-07007]] If called within a subpass of a render
---     pass instance, the corresponding
+-- -   #VUID-vkCmdEndQueryIndexedEXT-None-07007# If called within a subpass
+--     of a render pass instance, the corresponding
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* command /must/
 --     have been called previously within the same subpass
 --
--- -   [[VUID-{refpage}-None-07008]] If called outside of a render pass
---     instance, the corresponding
+-- -   #VUID-vkCmdEndQueryIndexedEXT-None-07008# If called outside of a
+--     render pass instance, the corresponding
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* command /must/
 --     have been called outside of a render pass instance
 --
@@ -1480,6 +1483,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -1505,6 +1518,34 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -1546,11 +1587,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08600# For each set /n/
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -1560,13 +1599,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -1578,12 +1614,10 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -1746,34 +1780,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-08614# If
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawIndirectByteCountEXT-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -1785,18 +1810,24 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-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
@@ -1899,6 +1930,8 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977#
 --     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -1906,12 +1939,36 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978#
 --     If any command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDrawIndirectByteCountEXT-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>
@@ -1956,16 +2013,90 @@
 --     not be written in any way other than as an attachment by this
 --     command
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-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
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
 --
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-06886# If the current
 --     render pass instance uses a depth\/stencil attachment with a
 --     read-only layout for the depth aspect,
@@ -2034,18 +2165,23 @@
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
 --     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08620# If a shader object
 --     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
 --     in the current command buffer set @depthBiasEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07835# If the bound
 --     graphics pipeline state was created with the
@@ -2068,7 +2204,7 @@
 --     the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
 --     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
+--     @pColorBlendEquations@ to a
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
 --     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
 --     member with a value of
@@ -2083,16 +2219,20 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07836# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
 --     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
 --     been called in the current command buffer prior to this drawing
 --     command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08622# If a shader object
 --     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
 --     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
 --     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
 --     been called in the current command buffer prior to this drawing
 --     command
@@ -2100,7 +2240,8 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07837# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
 --     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2117,7 +2258,8 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07838# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
 --     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
 --     have been called in the current command buffer prior to this drawing
 --     command
@@ -2134,7 +2276,8 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07839# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
 --     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
 --     have been called in the current command buffer prior to this drawing
 --     command
@@ -2174,7 +2317,10 @@
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
 --     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2198,7 +2344,10 @@
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08627# If a shader object
---     is bound to any graphics stage,
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2212,7 +2361,10 @@
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08628# If a shader object
---     is bound to any graphics stage,
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2226,7 +2378,10 @@
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08629# If a shader object
---     is bound to any graphics stage,
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2240,7 +2395,10 @@
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08630# If a shader object
---     is bound to any graphics stage,
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2255,9 +2413,12 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08631# If a shader object
 --     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
 --     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2273,7 +2434,10 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08632# If a shader object
 --     is bound to any graphics stage, and the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -2393,6 +2557,13 @@
 --     the last call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09232# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08636# If a shader object
 --     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
 --     extension is enabled on the device, then the @viewportCount@
@@ -2426,6 +2597,30 @@
 --     the last call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08637# If a shader object
 --     is bound to any graphics stage, and the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
@@ -2478,6 +2673,14 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08638# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
@@ -2529,7 +2732,9 @@
 --     'Vulkan.Core10.Enums.LogicOp.LogicOp' value
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08641# If a shader object
---     is bound to any graphics stage, and the
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
 --     feature is enabled on the device, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
@@ -2615,6 +2820,11 @@
 --     to be the same as the number of samples for the current render pass
 --     color and\/or depth\/stencil attachments
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08876# If a shader object
+--     is bound to any graphics stage, the current render pass instance
+--     /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172# If the current
 --     render pass instance was begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
@@ -2687,8 +2897,11 @@
 --     equal to
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180# If
---     the current render pass instance was begun with
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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@
@@ -2701,13 +2914,37 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-07616# If
---     the current render pass instance was begun with
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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
@@ -2715,6 +2952,132 @@
 --     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362# If
+--     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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09366# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07749# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'
@@ -2726,7 +3089,9 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08646# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
 --     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.FALSE', then
@@ -2746,7 +3111,9 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08647# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
 --     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
@@ -2772,6 +3139,17 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08648# If the
 --     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
 --     object is bound to any graphics stage, and the most recent call to
@@ -2803,31 +3181,64 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181# If the
---     current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-07617# If the
---     current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182# If the
---     current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
@@ -2835,15 +3246,20 @@
 --     to the 'Vulkan.Core10.Enums.Format.Format' used to create
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-07618# If the
---     current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
---     and
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and 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'
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183# If the current
 --     render pass instance was begun with
@@ -2990,6 +3406,40 @@
 --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@
 --     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>
@@ -3016,6 +3466,22 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-None-09237# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08650# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
 --     feature is enabled, and a shader object is bound to any graphics
@@ -3086,6 +3552,17 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08654# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
@@ -3095,6 +3572,16 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920# If
+--     a shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07625# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'
@@ -3124,7 +3611,8 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08656# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
 --     stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
@@ -3142,7 +3630,9 @@
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08657# If a shader object
---     is bound to any graphics stage, and the most recent call to
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.FALSE', then
@@ -3179,7 +3669,9 @@
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08659# If a shader object
---     is bound to any graphics stage, and the most recent call to
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.FALSE', then
@@ -3197,7 +3689,8 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08660# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
 --     stage, then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
 --     /must/ have been called in the current command buffer prior to this
@@ -3297,7 +3790,9 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08665# If the
 --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3406,7 +3901,7 @@
 --     stage, then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
 --     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
+--     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07640# If the bound
 --     graphics pipeline state was created with the
@@ -3414,7 +3909,7 @@
 --     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 endif::VK_EXT_extended_dynamic_state3
+--     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08674# If the
 --     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
@@ -3448,7 +3943,12 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08676# If the
 --     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3463,8 +3963,9 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08677# If the
 --     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
 --     in the current command buffer set @coverageToColorEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.TRUE', then
@@ -3482,7 +3983,10 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08678# If the
 --     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3497,7 +4001,15 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08679# If the
 --     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3513,6 +4025,9 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08680# If the
 --     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
 --     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
 --     in the current command buffer set @coverageModulationTableEnable@ to
 --     'Vulkan.Core10.FundamentalTypes.TRUE', then
@@ -3528,10 +4043,26 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08681# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
 --     feature is enabled, and a shader object is bound to any graphics
---     stage, then
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3541,13 +4072,16 @@
 --     '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
+--     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08682# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
 --     feature is enabled, and a shader object is bound to any graphics
---     stage, then
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3563,7 +4097,10 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08683# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
 --     feature is enabled, and a shader object is bound to any graphics
---     stage, then
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
@@ -3612,18 +4149,29 @@
 --     in the last call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07475#
---     If the bound graphics pipeline state was created with the
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474# 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
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawIndirectByteCountEXT-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476# If the
 --     bound graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'
@@ -3682,7 +4230,7 @@
 --     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
+--     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-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#
@@ -3844,7 +4392,7 @@
 --     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
+--     bound pipeline state, then the current @rasterizationSamples@ /must/
 --     be the same as the sample count of the depth\/stencil attachment
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490# If
@@ -3875,7 +4423,7 @@
 --     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
+--     (if the subpass has them) /must/ be a valid combination returned by
 --     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492# If the
@@ -3963,7 +4511,7 @@
 --     <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
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499#
 --     If the bound graphics pipeline state was created with the
@@ -3990,8 +4538,16 @@
 --     '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
+--     /must/ not be active
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07850# If dynamic state was
 --     inherited from
 --     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
@@ -4001,7 +4557,7 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08684# If there is no bound
 --     graphics pipeline,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
 --
@@ -4010,7 +4566,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
 --     feature is enabled,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
 --
@@ -4019,7 +4575,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
 --     feature is enabled,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
 --
@@ -4028,14 +4584,14 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
 --     feature is enabled,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08688# If there is no bound
 --     graphics pipeline,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
 --
@@ -4044,7 +4600,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
 --     feature is enabled,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
 --
@@ -4053,7 +4609,7 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
 --     feature is enabled,
 --     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
+--     have been called in the current command buffer with @pStages@ with
 --     an element of
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
 --
@@ -4065,8 +4621,8 @@
 --     features is enabled, one of the
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
 --     'Vulkan.Extensions.Handles.ShaderEXT' bound
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08694# If there is no bound
@@ -4131,6 +4687,37 @@
 --     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
 --     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08878# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08879# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08880# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715# If the
 --     bound graphics pipeline state includes a fragment shader stage, was
 --     created with
@@ -4155,6 +4742,33 @@
 --     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
 --     be @0@
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09116# If a shader object
+--     is bound to any graphics stage or the currently bound graphics
+--     pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input
 --     bindings accessed via vertex input variables declared in the vertex
 --     shader entry point’s interface /must/ have either valid or
@@ -4216,6 +4830,14 @@
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
 --     /must/ not be @NULL@
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08881# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04914# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
@@ -4232,6 +4854,53 @@
 --     @OpEntryPoint@ /must/ contain a location in
 --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-Input-08734# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-format-08936# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-format-08937# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09203# If there is a shader
+--     object bound to a graphics stage or the currently bound graphics
+--     pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08882# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04875# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
@@ -4240,6 +4909,14 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08883# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04879# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
@@ -4248,6 +4925,16 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-08884#
+--     If a shader object is bound to any graphics stage, and the most
+--     recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-stage-06481# The bound graphics
 --     pipeline /must/ not have been created with the
 --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@
@@ -4257,6 +4944,13 @@
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
 --     or
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08885# There /must/ be no
+--     shader object bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287#
 --     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Cort Stratton
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Cort Stratton
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs b/src/Vulkan/Extensions/VK_EXT_validation_features.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     5
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     5
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_EXT_validation_features@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_EXT_validation_features@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
--- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -102,29 +105,29 @@
 --
 -- >     const VkVertexInputBindingDivisorDescriptionEXT divisorDesc =
 -- >     {
--- >         0,
--- >         4
+-- >         .binding = 0,
+-- >         .divisor = 4
 -- >     };
 -- >
 -- >     const VkPipelineVertexInputDivisorStateCreateInfoEXT divisorInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, // sType
--- >         NULL,                                                             // pNext
--- >         1,                                                                // vertexBindingDivisorCount
--- >         &divisorDesc                                                      // pVertexBindingDivisors
+-- >         .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .vertexBindingDivisorCount = 1,
+-- >         .pVertexBindingDivisors = &divisorDesc
 -- >     }
 -- >
 -- >     const VkVertexInputBindingDescription binding =
 -- >     {
--- >         0,                                                                // binding
--- >         sizeof(Vertex),                                                   // stride
--- >         VK_VERTEX_INPUT_RATE_INSTANCE                                     // inputRate
+-- >         .binding = 0,
+-- >         .stride = sizeof(Vertex),
+-- >         .inputRate = VK_VERTEX_INPUT_RATE_INSTANCE
 -- >     };
 -- >
 -- >     const VkPipelineVertexInputStateCreateInfo viInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO,              // sType
--- >         &divisorInfo,                                                     // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO,
+-- >         .pNext = &divisorInfo,
 -- >         ...
 -- >     };
 -- >     //...
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -102,29 +105,29 @@
 --
 -- >     const VkVertexInputBindingDivisorDescriptionEXT divisorDesc =
 -- >     {
--- >         0,
--- >         4
+-- >         .binding = 0,
+-- >         .divisor = 4
 -- >     };
 -- >
 -- >     const VkPipelineVertexInputDivisorStateCreateInfoEXT divisorInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, // sType
--- >         NULL,                                                             // pNext
--- >         1,                                                                // vertexBindingDivisorCount
--- >         &divisorDesc                                                      // pVertexBindingDivisors
+-- >         .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
+-- >         .pNext = NULL,
+-- >         .vertexBindingDivisorCount = 1,
+-- >         .pVertexBindingDivisors = &divisorDesc
 -- >     }
 -- >
 -- >     const VkVertexInputBindingDescription binding =
 -- >     {
--- >         0,                                                                // binding
--- >         sizeof(Vertex),                                                   // stride
--- >         VK_VERTEX_INPUT_RATE_INSTANCE                                     // inputRate
+-- >         .binding = 0,
+-- >         .stride = sizeof(Vertex),
+-- >         .inputRate = VK_VERTEX_INPUT_RATE_INSTANCE
 -- >     };
 -- >
 -- >     const VkPipelineVertexInputStateCreateInfo viInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO,              // sType
--- >         &divisorInfo,                                                     // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO,
+-- >         .pNext = &divisorInfo,
 -- >         ...
 -- >     };
 -- >     //...
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs
--- a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs
--- a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs
+++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs
--- a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs
+++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --     or
diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
 --     or
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs
--- a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory VK_FUCHSIA_external_memory>
 --     and
@@ -123,11 +126,6 @@
 --
 -- -   'FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
 --
 --     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA'
@@ -153,6 +151,15 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT'
 --
 -- == Issues
 --
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot
--- a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory VK_FUCHSIA_external_memory>
 --     and
@@ -123,11 +126,6 @@
 --
 -- -   'FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
 --
 --     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA'
@@ -153,6 +151,15 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT'
 --
 -- == Issues
 --
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs
--- a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities VK_KHR_external_memory_capabilities>
 --     and
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot
--- a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities VK_KHR_external_memory_capabilities>
 --     and
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs
--- a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_capabilities>
 --     and
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot
--- a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_capabilities>
 --     and
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs
--- a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_GGP_frame_token.hs b/src/Vulkan/Extensions/VK_GGP_frame_token.hs
--- a/src/Vulkan/Extensions/VK_GGP_frame_token.hs
+++ b/src/Vulkan/Extensions/VK_GGP_frame_token.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot b/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot
--- a/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot
+++ b/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs
--- a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs
+++ b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs b/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs
--- a/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs
+++ b/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Hai Nguyen
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs
--- a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs
+++ b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot
--- a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot
+++ b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs b/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs
--- a/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs
+++ b/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Hai Nguyen
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs b/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs
--- a/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs
+++ b/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -55,8 +58,9 @@
 -- and
 -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'
 -- functions to accept 'Vulkan.Core10.APIConstants.NULL_HANDLE' as their
--- @surface@ parameter, allowing potential surface formats, colorspaces and
--- present modes to be queried without providing a surface. Identically,
+-- @surface@ parameter, allowing potential surface formats, color spaces
+-- and present modes to be queried without providing a surface.
+-- Identically,
 -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR',
 -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT',
 -- and
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs b/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs
--- a/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs
+++ b/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Kaye Mason
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs
--- a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs
+++ b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs
@@ -15,6356 +15,7582 @@
 --     405
 --
 -- [__Revision__]
---     1
---
--- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
---
--- [__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. Note that ccs do not work at the same time with geometry
--- shader or tessellation shader.
---
--- 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[];
--- > };
--- >
--- >
--- > 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 = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
--- >
--- >     if( instance_render)
--- >     {
--- >         // cluster based culling
--- >         bool render = (!isSphereOutsideFrustum(desc.sphere.center,
--- >         desc.sphere.radius) && isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.norm
--- >         al, 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. Note
--- the cluster culling shader pipeline only accepts 'cmdDrawClusterHUAWEI'
--- and 'cmdDrawClusterIndirectHUAWEI' as drawing commands.
---
--- == 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-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_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-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08601# For each push constant that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', 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-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #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-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08608# If a pipeline is bound to
---     the pipeline bind point used by this command, 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-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08617# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08618# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08619# If a shader object that
---     outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08620# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08621# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08622# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08623# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08624# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08625# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #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-None-08626# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08627# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08628# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08629# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08630# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08631# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08632# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08633# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08634# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /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-None-08635# If a shader object is bound
---     to any graphics stage, 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-None-08636# If a shader object is bound
---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-None-08637# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08638# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #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-08639# If a shader object is bound
---     to any graphics stage, 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-None-08640# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-None-08641# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-None-08643# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been '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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08644# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     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-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #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-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #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 @rasterizationSamples@ for
---     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
---     @rasterizationSamples@ for 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
---     @rasterizationSamples@ for 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-pNext-07935# If this command has been
---     called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #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-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08651# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08652# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08653# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08654# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08657# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08658# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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-08659# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, 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-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     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-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, 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-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 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-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, 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-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 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-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, 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-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /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-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, 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-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, 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-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, 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-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, 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-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-sampleLocationsEnable-07936# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #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-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08698# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08699# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08716# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #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.Note the cluster culling
--- shader pipeline only accepts 'cmdDrawClusterHUAWEI' and
--- 'cmdDrawClusterIndirectHUAWEI' as drawing commands.
---
--- == 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-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_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-08600# For each set /n/
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', 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-08604# Descriptors in
---     bound descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #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-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608# If a pipeline is
---     bound to the pipeline bind point used by this command, 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-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-None-07831# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619# If a shader object
---     that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08624# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08625# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #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-None-08626# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08633# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08634# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /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-None-08635# If a shader object
---     is bound to any graphics stage, 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-None-08636# If a shader object
---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-None-08637# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-07878# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #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-08639# If a shader object
---     is bound to any graphics stage, 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-None-08640# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-None-08641# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-None-08643# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been '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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     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-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #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-None-07880# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #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 @rasterizationSamples@ for
---     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
---     @rasterizationSamples@ for 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
---     @rasterizationSamples@ for 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-pNext-07935# If this command
---     has been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #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-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08651# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08652# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08653# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08654# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08657# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08658# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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-08659# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, 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-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     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-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, 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-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 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-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, 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-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 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-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, 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-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /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-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, 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-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, 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-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, 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-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, 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-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, 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-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', 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-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, 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-sampleLocationsEnable-07936# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #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-None-07850# If dynamic state
---     was inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08685# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08686# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08687# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08688# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08689# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08690# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08693# If there is no
---     bound graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08694# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08695# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08696# If there is no
---     bound graphics pipeline, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08716# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #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-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@.
---
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918# @offset@ /must/
---     be a multiple of
---     'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'::@indirectBufferOffsetAlignment@
---
--- == 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.FundamentalTypes.DeviceSize',
--- '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
-  , -- | @indirectBufferOffsetAlignment@ indicates the alignment for cluster
-    -- drawing command buffer stride. 'cmdDrawClusterIndirectHUAWEI'::@offset@
-    -- must be a multiple of this value.
-    indirectBufferOffsetAlignment :: DeviceSize
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)
-#endif
-deriving instance Show PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
-
-instance ToCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where
-  withCStruct x f = allocaBytes 56 $ \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)
-    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (indirectBufferOffsetAlignment)
-    f
-  cStructSize = 56
-  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)
-    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (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))
-    indirectBufferOffsetAlignment <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))
-    pure $ PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
-             ((maxWorkGroupCount0, maxWorkGroupCount1, maxWorkGroupCount2))
-             ((maxWorkGroupSize0, maxWorkGroupSize1, maxWorkGroupSize2))
-             maxOutputClusterCount
-             indirectBufferOffsetAlignment
-
-instance Storable PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where
-  sizeOf ~_ = 56
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where
-  zero = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
-           (zero, 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
+--     2
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__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 Shaders (CCS) are similar to the existing compute
+-- shaders. Their main purpose is to provide an execution environment in
+-- order to perform coarse-level geometry culling and LOD selection more
+-- efficiently on the GPU.
+--
+-- The traditional 2-pass GPU culling solution using a compute shader
+-- sometimes needs a pipeline barrier between compute and graphics pipeline
+-- to optimize performance. An additional compaction process may also be
+-- required. This extension addresses these shortcomings, allowing compute
+-- shaders to directly emit visible clusters to the following graphics
+-- pipeline.
+--
+-- A set of new built-in output variables are used to express a visible
+-- cluster. In addition, a new built-in function is used to emit these
+-- variables from CCS to the IA stage. The IA stage can use these variables
+-- to fetches vertices of a visible cluster and drive vertex shaders to
+-- shading these vertices.
+--
+-- Note that CCS do not work with geometry or tessellation shaders, but
+-- both IA and vertex shaders are preserved. Vertex shaders are still used
+-- for vertex position shading, instead of directly outputting transformed
+-- vertices from the 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[];
+-- > };
+-- >
+-- >
+-- > 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 = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
+-- >
+-- >     if( instance_render)
+-- >     {
+-- >         // cluster based culling
+-- >         bool render = (!isSphereOutsideFrustum(desc.sphere.center,
+-- >         desc.sphere.radius) && isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.norm
+-- >         al, 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
+--
+-- -   Revision 2, 2023-04-02 (Jon Leech)
+--
+--     -   Grammar edits.
+--
+-- == 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. Note
+-- that the cluster culling shader pipeline only accepts
+-- 'cmdDrawClusterHUAWEI' and 'cmdDrawClusterIndirectHUAWEI' as drawing
+-- commands.
+--
+-- == 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-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_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-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #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-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #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-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08601# For each push constant that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', 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-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #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-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08608# If a pipeline is bound to
+--     the pipeline bind point used by this command, 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-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #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@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-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-09000# If a color attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09001# If a depth attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09003# If an attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass 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-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08617# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08618# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08619# If a shader object that
+--     outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08620# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08621# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08622# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08623# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08624# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08625# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #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-None-08626# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08627# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08628# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08629# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08630# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08631# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08632# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08633# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08634# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /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-None-08635# If a shader object is bound
+--     to any graphics stage, 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-None-09232# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08636# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08637# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08638# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #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-08639# If a shader object is bound
+--     to any graphics stage, 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-None-08640# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-None-08641# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-None-08643# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been '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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08644# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08876# If a shader object is bound
+--     to any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #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-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09363# If there is no shader
+--     object bound to any graphics stage, the current render pass instance
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09366# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #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-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #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-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     '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 @rasterizationSamples@ for
+--     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
+--     @rasterizationSamples@ for 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
+--     @rasterizationSamples@ for 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-pNext-07935# If this command has been
+--     called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #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-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-08964# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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-09237# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, 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-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08651# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08652# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08653# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-alphaToCoverageEnable-08919# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08654# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-alphaToCoverageEnable-08920# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #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-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08657# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08658# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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-08659# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 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-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     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-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, 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-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, 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-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 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-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, 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-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 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-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, 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-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /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-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, 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-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, 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-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     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-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-pipelineFragmentShadingRate-09238# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-rasterizationSamples-07474# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #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-sampleLocationsEnable-07936# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #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 'Vulkan.Core10.FundamentalTypes.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-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08698# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08699# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08880# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08716# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-09116# If a shader object is bound
+--     to any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawClusterHUAWEI-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #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
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>
+--     /must/ not contain
+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT',
+--     or
+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.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.Note the cluster culling
+-- shader pipeline only accepts 'cmdDrawClusterHUAWEI' and
+-- 'cmdDrawClusterIndirectHUAWEI' as drawing commands.
+--
+-- == 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-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_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-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #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-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #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-08600# For each set /n/
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', 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-08604# Descriptors in
+--     bound descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #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-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #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@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-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-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass 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-None-07831# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619# If a shader object
+--     that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08624# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08625# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #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-None-08626# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08633# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08634# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /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-None-08635# If a shader object
+--     is bound to any graphics stage, 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-None-09232# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-07878# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #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-08639# If a shader object
+--     is bound to any graphics stage, 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-None-08640# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-None-08641# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-None-08643# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been '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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876# If a shader object
+--     is bound to any graphics stage, the current render pass instance
+--     /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #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-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-colorAttachmentCount-09362# If
+--     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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370# If there
+--     is a shader object bound to any graphics stage, and the current
+--     render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371# If there
+--     is a shader object bound to any graphics stage, and the current
+--     render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #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-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #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-None-07880# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     '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 @rasterizationSamples@ for
+--     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
+--     @rasterizationSamples@ for 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
+--     @rasterizationSamples@ for 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-pNext-07935# If this command
+--     has been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #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-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-08965# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #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-09237# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, 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-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08651# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08652# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08653# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-alphaToCoverageEnable-08919# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08654# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-alphaToCoverageEnable-08920# If
+--     a shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #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-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08657# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08658# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', 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-08659# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 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-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     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-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, 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-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, 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-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 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-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, 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-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', 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-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 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-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, 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-07849# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /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-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, 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-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, 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-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, 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-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     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-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', 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-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-rasterizationSamples-07474# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #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-sampleLocationsEnable-07936# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #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 'Vulkan.Core10.FundamentalTypes.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-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850# If dynamic state
+--     was inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08685# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08686# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08687# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08688# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08689# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08690# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08693# If there is no
+--     bound graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08694# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08695# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08696# If there is no
+--     bound graphics pipeline, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08716# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116# If a shader object
+--     is bound to any graphics stage or the currently bound graphics
+--     pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #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-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@.
+--
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918# @offset@ /must/
+--     be a multiple of
+--     'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'::@indirectBufferOffsetAlignment@
+--
+-- == 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.FundamentalTypes.DeviceSize',
+-- '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
+  , -- | @indirectBufferOffsetAlignment@ indicates the alignment for cluster
+    -- drawing command buffer stride. 'cmdDrawClusterIndirectHUAWEI'::@offset@
+    -- must be a multiple of this value.
+    indirectBufferOffsetAlignment :: DeviceSize
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)
+#endif
+deriving instance Show PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
+
+instance ToCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where
+  withCStruct x f = allocaBytes 56 $ \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)
+    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (indirectBufferOffsetAlignment)
+    f
+  cStructSize = 56
+  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)
+    poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (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))
+    indirectBufferOffsetAlignment <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))
+    pure $ PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
+             ((maxWorkGroupCount0, maxWorkGroupCount1, maxWorkGroupCount2))
+             ((maxWorkGroupSize0, maxWorkGroupSize1, maxWorkGroupSize2))
+             maxOutputClusterCount
+             indirectBufferOffsetAlignment
+
+instance Storable PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where
+  zero = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
+           (zero, 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 = 2
+
+-- 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 = 2
 
 
 type HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader"
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot
--- a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot
+++ b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot
@@ -15,8 +15,11 @@
 --     405
 --
 -- [__Revision__]
---     1
+--     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -63,29 +66,29 @@
 --
 -- == 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.
+-- Cluster Culling Shaders (CCS) are similar to the existing compute
+-- shaders. Their main purpose is to provide an execution environment in
+-- order to perform coarse-level geometry culling and LOD selection more
+-- efficiently on the 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.
+-- The traditional 2-pass GPU culling solution using a compute shader
+-- sometimes needs a pipeline barrier between compute and graphics pipeline
+-- to optimize performance. An additional compaction process may also be
+-- required. This extension addresses these shortcomings, allowing compute
+-- shaders to directly emit visible clusters to the 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. Note that ccs do not work at the same time with geometry
--- shader or tessellation shader.
+-- A set of new built-in output variables are used to express a visible
+-- cluster. In addition, a new built-in function is used to emit these
+-- variables from CCS to the IA stage. The IA stage can use these variables
+-- to fetches vertices of a visible cluster and drive vertex shaders 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.
+-- Note that CCS do not work with geometry or tessellation shaders, but
+-- both IA and vertex shaders are preserved. Vertex shaders are still used
+-- for vertex position shading, instead of directly outputting transformed
+-- vertices from the compute shader. This makes CCS more suitable for
+-- mobile GPUs.
 --
 -- == New Commands
 --
@@ -155,7 +158,7 @@
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>
 --
--- == Sample code
+-- == Sample Code
 --
 -- Example of cluster culling in a GLSL shader
 --
@@ -348,6 +351,10 @@
 -- -   Revision 1, 2022-11-18 (YuChang Wang)
 --
 --     -   Internal revisions
+--
+-- -   Revision 2, 2023-04-02 (Jon Leech)
+--
+--     -   Grammar edits.
 --
 -- == See Also
 --
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs
--- a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs
+++ b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --     and
@@ -240,9 +243,9 @@
 --     invocation mask image /must/ have the value @0@ or @1@. The value 1
 --     means the invocation is active
 --
--- -   #VUID-vkCmdBindInvocationMaskHUAWEI-width-04983# @width@ in
+-- -   #VUID-vkCmdBindInvocationMaskHUAWEI-depth-04983# @depth@ in
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'
---     should be 1
+--     /must/ be 1
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot
--- a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot
+++ b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --     and
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs
--- a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs
+++ b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs
@@ -15,8 +15,11 @@
 --     370
 --
 -- [__Revision__]
---     2
+--     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
 --     and
@@ -113,8 +116,10 @@
 -- -   Extending
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
 --
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
+--     -   'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--
 -- -   Extending
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':
 --
@@ -245,12 +250,12 @@
 -- > VkMemoryBarrier2KHR fragmentToSubpassShading = {
 -- >   VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL,
 -- >   VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
--- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
+-- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
 -- > };
 -- >
 -- > VkMemoryBarrier2KHR subpassShadingToFragment = {
 -- >   VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL,
--- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT,
+-- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT,
 -- >   VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_SHADER_READ_BIT
 -- > };
 -- >
@@ -318,6 +323,12 @@
 --
 -- == Version History
 --
+-- -   Revision 3, 2023-06-19 (Pan Gao)
+--
+--     -   Rename 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' to
+--         'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
+--         to better aligned with naming of other pipeline stages
+--
 -- -   Revision 2, 2021-06-28 (Hueilong Wang)
 --
 --     -   Change vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to
@@ -344,6 +355,7 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_HUAWEI_subpass_shading  ( getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI
                                                     , cmdSubpassShadingHUAWEI
+                                                    , pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
                                                     , SubpassShadingPipelineCreateInfoHUAWEI(..)
                                                     , PhysicalDeviceSubpassShadingPropertiesHUAWEI(..)
                                                     , PhysicalDeviceSubpassShadingFeaturesHUAWEI(..)
@@ -405,6 +417,8 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)
+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI))
@@ -541,6 +555,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -566,6 +590,33 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -607,11 +658,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -621,12 +670,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08601# For each push constant
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -638,12 +685,10 @@
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -806,34 +851,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-08614# If
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdSubpassShadingHUAWEI-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -845,18 +881,24 @@
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdSubpassShadingHUAWEI-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-vkCmdSubpassShadingHUAWEI-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdSubpassShadingHUAWEI-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-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
@@ -959,6 +1001,8 @@
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977# If
 --     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -966,12 +1010,35 @@
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978# If
 --     any command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdSubpassShadingHUAWEI-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>
@@ -1040,6 +1107,10 @@
   pure $ ()
 
 
+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"
+pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
+
+
 -- | VkSubpassShadingPipelineCreateInfoHUAWEI - Structure specifying
 -- parameters of a newly created subpass shading pipeline
 --
@@ -1243,11 +1314,11 @@
            zero
 
 
-type HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 2
+type HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 3
 
 -- No documentation found for TopLevel "VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION"
 pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION :: forall a . Integral a => a
-pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 2
+pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 3
 
 
 type HUAWEI_SUBPASS_SHADING_EXTENSION_NAME = "VK_HUAWEI_subpass_shading"
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot
--- a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot
+++ b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot
@@ -15,8 +15,11 @@
 --     370
 --
 -- [__Revision__]
---     2
+--     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
 --     and
@@ -113,8 +116,10 @@
 -- -   Extending
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':
 --
---     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
+--     -   'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--
 -- -   Extending
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':
 --
@@ -245,12 +250,12 @@
 -- > VkMemoryBarrier2KHR fragmentToSubpassShading = {
 -- >   VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL,
 -- >   VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
--- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
+-- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
 -- > };
 -- >
 -- > VkMemoryBarrier2KHR subpassShadingToFragment = {
 -- >   VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL,
--- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT,
+-- >   VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT,
 -- >   VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_SHADER_READ_BIT
 -- > };
 -- >
@@ -317,6 +322,12 @@
 -- > vkCreateComputePipelines(device, pipelineCache, 1, &subpassShadingComputePipelineCreateInfo, NULL, &pipeline);
 --
 -- == Version History
+--
+-- -   Revision 3, 2023-06-19 (Pan Gao)
+--
+--     -   Rename 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' to
+--         'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
+--         to better aligned with naming of other pipeline stages
 --
 -- -   Revision 2, 2021-06-28 (Hueilong Wang)
 --
diff --git a/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs b/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs
--- a/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs
+++ b/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Tobias Hector
@@ -62,7 +65,7 @@
 --
 -- >     VkSamplerCreateInfo createInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType
+-- >         .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
 -- >         // Other members set to application-desired values
 -- >     };
 -- >
diff --git a/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs b/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs
--- a/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs
+++ b/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ without replacement
 --
diff --git a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs
--- a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs
+++ b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
@@ -972,6 +975,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- == Return Codes
diff --git a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot
--- a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>
diff --git a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs
--- a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs
+++ b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot
--- a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot
+++ b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs b/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs
--- a/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs
+++ b/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class VK_KHR_storage_buffer_storage_class>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs b/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs
--- a/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs
+++ b/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class VK_KHR_storage_buffer_storage_class>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
--- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
+++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     13
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --     and
@@ -285,11 +288,6 @@
 --
 --     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':
 --
 --     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'
@@ -351,6 +349,15 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR'
 --
 -- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT'
+--
+-- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
 -- is supported:
 --
@@ -1211,6 +1218,7 @@
                                                                                                , BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR
                                                                                                , BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR
                                                                                                , BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
+                                                                                               , BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
                                                                                                , BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV
                                                                                                , BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT
                                                                                                , BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT
@@ -1433,6 +1441,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442#
 --     All submitted commands that refer to @accelerationStructure@ /must/
 --     have completed execution
@@ -1539,6 +1552,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737# The @buffer@
 --     used to create @pInfo->src@ /must/ be bound to device memory
 --
@@ -1630,6 +1648,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
+--
 -- -   #VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677# If
 --     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
 --     it /must/ be a valid
@@ -1644,10 +1666,6 @@
 --
 -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03728# The @buffer@ used
 --     to create @pInfo->dst@ /must/ be bound to host-visible device memory
---
--- -   #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used
@@ -1804,6 +1822,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739#
 --     @pInfo->dst.deviceAddress@ /must/ be a valid device address for a
 --     buffer bound to device memory
@@ -1914,6 +1937,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677#
 --     If @deferredOperation@ is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be a valid
@@ -1933,11 +1961,6 @@
 -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751#
 --     @pInfo->dst.hostAddress@ /must/ be aligned to 16 bytes
 --
--- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
---     feature /must/ be enabled
---
 -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783# The
 --     @buffer@ used to create @pInfo->src@ /must/ be bound to memory that
 --     was not allocated with multiple instances
@@ -2057,6 +2080,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742#
 --     @pInfo->src.deviceAddress@ /must/ be a valid device address for a
 --     buffer bound to device memory
@@ -2163,6 +2191,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677#
 --     If @deferredOperation@ is not
 --     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be a valid
@@ -2182,11 +2215,6 @@
 --     @buffer@ used to create @pInfo->dst@ /must/ be bound to host-visible
 --     device memory
 --
--- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
---     feature /must/ be enabled
---
 -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782# The
 --     @buffer@ used to create @pInfo->dst@ /must/ be bound to memory that
 --     was not allocated with multiple instances
@@ -2298,6 +2326,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493#
 --     @queryPool@ /must/ have been created with a @queryType@ matching
 --     @queryType@
@@ -2455,6 +2488,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964#
 --     All acceleration structures in @pAccelerationStructures@ /must/ have
 --     been built prior to the execution of this command
@@ -2531,11 +2569,6 @@
 --     @pAccelerationStructures@ /must/ be bound to host-visible device
 --     memory
 --
--- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
---     feature /must/ be enabled
---
 -- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784# The
 --     @buffer@ used to create each acceleration structure in
 --     @pAccelerationStructures@ /must/ be bound to memory that was not
@@ -2641,11 +2674,9 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661#
+-- -   #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-accelerationStructure-08928#
 --     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -2707,17 +2738,31 @@
 -- of geometry that can be built into an acceleration structure is
 -- determined by the parameters of 'AccelerationStructureCreateInfoKHR'.
 --
--- Populating the data in the object after allocating and binding memory is
--- done with commands such as 'cmdBuildAccelerationStructuresKHR',
--- 'buildAccelerationStructuresKHR', 'cmdCopyAccelerationStructureKHR', and
--- 'copyAccelerationStructureKHR'.
+-- The acceleration structure data is stored in the object referred to by
+-- 'AccelerationStructureCreateInfoKHR'::@buffer@. Once memory has been
+-- bound to that buffer, it /must/ be populated by acceleration structure
+-- build or acceleration structure copy commands such as
+-- 'cmdBuildAccelerationStructuresKHR', 'buildAccelerationStructuresKHR',
+-- 'cmdCopyAccelerationStructureKHR', and 'copyAccelerationStructureKHR'.
 --
+-- Note
+--
+-- The expected usage for a trace capture\/replay tool is that it will
+-- serialize and later deserialize the acceleration structure data using
+-- acceleration structure copy commands. During capture the tool will use
+-- 'copyAccelerationStructureToMemoryKHR' or
+-- 'cmdCopyAccelerationStructureToMemoryKHR' with a @mode@ of
+-- 'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR', and
+-- 'copyMemoryToAccelerationStructureKHR' or
+-- 'cmdCopyMemoryToAccelerationStructureKHR' with a @mode@ of
+-- 'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR' during replay.
+--
 -- The input buffers passed to acceleration structure build commands will
 -- be referenced by the implementation for the duration of the command.
 -- After the command completes, the acceleration structure /may/ hold a
 -- reference to any acceleration structure specified by an active instance
 -- contained therein. Apart from this referencing, acceleration structures
--- /must/ be fully self-contained. The application /may/ re-use or free any
+-- /must/ be fully self-contained. The application /can/ reuse or free any
 -- memory which was used by the command as an input or as scratch without
 -- affecting the results of ray traversal.
 --
@@ -2725,7 +2770,7 @@
 --
 -- -   #VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611#
 --     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure accelerationStructure>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488# If
@@ -2899,6 +2944,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdBuildAccelerationStructuresKHR-accelerationStructure-08923#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628# The @mode@
 --     member of each element of @pInfos@ /must/ be a valid
 --     'BuildAccelerationStructureModeKHR' value
@@ -3475,6 +3525,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628# The
 --     @mode@ member of each element of @pInfos@ /must/ be a valid
 --     'BuildAccelerationStructureModeKHR' value
@@ -3956,11 +4011,6 @@
 -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649#
 --     @commandBuffer@ /must/ not be a protected command buffer
 --
--- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild>
---     feature /must/ be enabled
---
 -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651#
 --     Each 'AccelerationStructureBuildRangeInfoKHR' structure referenced
 --     by any element of @pIndirectDeviceAddresses@ /must/ be a valid
@@ -4135,6 +4185,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkBuildAccelerationStructuresKHR-mode-04628# The @mode@ member
 --     of each element of @pInfos@ /must/ be a valid
 --     'BuildAccelerationStructureModeKHR' value
@@ -4412,11 +4467,6 @@
 --     'GEOMETRY_TYPE_INSTANCES_KHR' /must/ be bound to host-visible device
 --     memory
 --
--- -   #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>
---     feature /must/ be enabled
---
 -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03725# If
 --     @pInfos@[i].@mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR',
 --     all addresses between @pInfos@[i].@scratchData.hostAddress@ and
@@ -4640,6 +4690,11 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
+--     feature /must/ be enabled
+--
 -- -   #VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504# If
 --     @device@ was created with multiple physical devices, then the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>
@@ -4694,9 +4749,9 @@
 -- = Description
 --
 -- The @srcAccelerationStructure@, @dstAccelerationStructure@, and @mode@
--- members of @pBuildInfo@ are ignored. Any 'DeviceOrHostAddressKHR'
--- members of @pBuildInfo@ are ignored by this command, except that the
--- @hostAddress@ member of
+-- members of @pBuildInfo@ are ignored. Any 'DeviceOrHostAddressKHR' or
+-- 'DeviceOrHostAddressConstKHR' members of @pBuildInfo@ are ignored by
+-- this command, except that the @hostAddress@ member of
 -- 'AccelerationStructureGeometryTrianglesDataKHR'::@transformData@ will be
 -- examined to check if it is @NULL@.
 --
@@ -4780,11 +4835,9 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617#
+-- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933#
 --     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>
---     or
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery>
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure ::accelerationStructure>
 --     feature /must/ be enabled
 --
 -- -   #VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618# If
@@ -5611,8 +5664,8 @@
 -- 'Vulkan.Core10.FundamentalTypes.FALSE'.
 --
 -- If 'AccelerationStructureGeometryInstancesDataKHR'::@arrayOfPointers@ is
--- 'Vulkan.Core10.FundamentalTypes.TRUE', the pointer for any given element
--- of the array of instance pointers consists of 4 bits of
+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the pointer for each element of
+-- the array of instance pointers consists of 4 bits of
 -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInstanceTypeNV'
 -- in the low 4 bits of the pointer identifying the type of structure at
 -- the pointer. The device address accessed is the value in the array with
@@ -6040,7 +6093,8 @@
 --
 -- If the acceleration structure will be the target of a build operation
 -- with 'BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV' it /must/ include
--- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' in @flags@ and include
+-- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' in @createFlags@ and
+-- include
 -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV'
 -- as an extension structure in @pNext@ with the number of instances as
 -- metadata for the object.
@@ -6071,16 +6125,17 @@
 -- -   #VUID-VkAccelerationStructureCreateInfoKHR-offset-03734# @offset@
 --     /must/ be a multiple of @256@ bytes
 --
--- -   #VUID-VkAccelerationStructureCreateInfoKHR-flags-04954# If
---     'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' is set in @flags@ and
---     @type@ is 'ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR', one member of
---     the @pNext@ chain /must/ be a pointer to a valid instance of
+-- -   #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954# If
+--     'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' is set in
+--     @createFlags@ and @type@ is
+--     'ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR', one member of the
+--     @pNext@ chain /must/ be a pointer to a valid instance of
 --     'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV'
 --
--- -   #VUID-VkAccelerationStructureCreateInfoKHR-flags-04955# If any
+-- -   #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955# If any
 --     geometry includes
 --     'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV'
---     then @flags@ /must/ contain
+--     then @createFlags@ /must/ contain
 --     'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV'
 --
 -- -   #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108# If
@@ -7299,6 +7354,11 @@
 -- of build time or trace performance.
 pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000010
 
+-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' indicates that the
+-- specified acceleration structure /can/ be used when fetching the vertex
+-- positions of a hit triangle.
+pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000800
+
 -- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV'
 -- indicates that the displacement micromaps associated with the specified
 -- acceleration structure /may/ change with an acceleration structure
@@ -7353,6 +7413,10 @@
   ,
     ( BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
     , "LOW_MEMORY_BIT_KHR"
+    )
+  ,
+    ( BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
+    , "ALLOW_DATA_ACCESS_KHR"
     )
   ,
     ( BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV
diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     13
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --     and
@@ -285,11 +288,6 @@
 --
 --     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':
 --
 --     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'
@@ -349,6 +347,15 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT'
 --
 -- If
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
diff --git a/src/Vulkan/Extensions/VK_KHR_android_surface.hs b/src/Vulkan/Extensions/VK_KHR_android_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_android_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_android_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs b/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs
--- a/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs b/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs
--- a/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs
+++ b/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
@@ -26,7 +29,7 @@
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs
@@ -0,0 +1,776 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_cooperative_matrix - device extension
+--
+-- == VK_KHR_cooperative_matrix
+--
+-- [__Name String__]
+--     @VK_KHR_cooperative_matrix@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     507
+--
+-- [__Revision__]
+--     2
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Kevin Petit
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_cooperative_matrix] @kpet%0A*Here describe the issue or question you have about the VK_KHR_cooperative_matrix extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-03
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_cooperative_matrix.html SPV_KHR_cooperative_matrix>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Markus Tavenrath, NVIDIA
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Kevin Petit, Arm Ltd.
+--
+--     -   Boris Zanin, AMD
+--
+-- == Description
+--
+-- This extension adds support for using cooperative matrix types in
+-- SPIR-V. Cooperative matrix types are medium-sized matrices that are
+-- primarily supported in compute shaders, where the storage for the matrix
+-- is spread across all invocations in some scope (usually a subgroup) and
+-- those invocations cooperate to efficiently perform matrix multiplies.
+--
+-- Cooperative matrix types are defined by the
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_cooperative_matrix.html SPV_KHR_cooperative_matrix>
+-- SPIR-V extension and can be used with the
+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
+-- GLSL extension.
+--
+-- This extension includes support for enumerating the matrix types and
+-- dimensions that are supported by the implementation.
+--
+-- == New Commands
+--
+-- -   'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+--
+-- == New Structures
+--
+-- -   'CooperativeMatrixPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCooperativeMatrixFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceCooperativeMatrixPropertiesKHR'
+--
+-- == New Enums
+--
+-- -   'ComponentTypeKHR'
+--
+-- -   'ScopeKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_COOPERATIVE_MATRIX_EXTENSION_NAME'
+--
+-- -   'KHR_COOPERATIVE_MATRIX_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR'
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixKHR CooperativeMatrixKHR>
+--
+-- == Version History
+--
+-- -   Revision 2, 2023-05-03 (Kevin Petit)
+--
+--     -   First KHR revision
+--
+-- -   Revision 1, 2019-02-05 (Jeff Bolz)
+--
+--     -   NVIDIA vendor extension
+--
+-- == See Also
+--
+-- 'ComponentTypeKHR', 'CooperativeMatrixPropertiesKHR',
+-- 'PhysicalDeviceCooperativeMatrixFeaturesKHR',
+-- 'PhysicalDeviceCooperativeMatrixPropertiesKHR', 'ScopeKHR',
+-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_cooperative_matrix Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_cooperative_matrix  ( getPhysicalDeviceCooperativeMatrixPropertiesKHR
+                                                    , PhysicalDeviceCooperativeMatrixFeaturesKHR(..)
+                                                    , CooperativeMatrixPropertiesKHR(..)
+                                                    , PhysicalDeviceCooperativeMatrixPropertiesKHR(..)
+                                                    , ScopeKHR( SCOPE_DEVICE_KHR
+                                                              , SCOPE_WORKGROUP_KHR
+                                                              , SCOPE_SUBGROUP_KHR
+                                                              , SCOPE_QUEUE_FAMILY_KHR
+                                                              , ..
+                                                              )
+                                                    , ComponentTypeKHR( COMPONENT_TYPE_FLOAT16_KHR
+                                                                      , COMPONENT_TYPE_FLOAT32_KHR
+                                                                      , COMPONENT_TYPE_FLOAT64_KHR
+                                                                      , COMPONENT_TYPE_SINT8_KHR
+                                                                      , COMPONENT_TYPE_SINT16_KHR
+                                                                      , COMPONENT_TYPE_SINT32_KHR
+                                                                      , COMPONENT_TYPE_SINT64_KHR
+                                                                      , COMPONENT_TYPE_UINT8_KHR
+                                                                      , COMPONENT_TYPE_UINT16_KHR
+                                                                      , COMPONENT_TYPE_UINT32_KHR
+                                                                      , COMPONENT_TYPE_UINT64_KHR
+                                                                      , ..
+                                                                      )
+                                                    , KHR_COOPERATIVE_MATRIX_SPEC_VERSION
+                                                    , pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION
+                                                    , KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
+                                                    , pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
+                                                    ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Exception.Base (bracket)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Alloc (callocBytes)
+import Foreign.Marshal.Alloc (free)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+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 Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR))
+import Vulkan.Core10.Handles (PhysicalDevice)
+import Vulkan.Core10.Handles (PhysicalDevice(..))
+import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
+import Vulkan.Core10.Handles (PhysicalDevice_T)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixPropertiesKHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixPropertiesKHR -> IO Result
+
+-- | vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR - Returns properties
+-- describing what cooperative matrix types are supported
+--
+-- = Description
+--
+-- If @pProperties@ is @NULL@, then the number of cooperative matrix
+-- properties available is returned in @pPropertyCount@. Otherwise,
+-- @pPropertyCount@ /must/ point to a variable set by the user to the
+-- number of elements in the @pProperties@ array, and on return the
+-- variable is overwritten with the number of structures actually written
+-- to @pProperties@. If @pPropertyCount@ is less than the number of
+-- cooperative matrix properties available, at most @pPropertyCount@
+-- structures will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'
+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to
+-- indicate that not all the available cooperative matrix properties were
+-- returned.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter#
+--     @physicalDevice@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PhysicalDevice' handle
+--
+-- -   #VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameter#
+--     @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value
+--
+-- -   #VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameter#
+--     If the value referenced by @pPropertyCount@ is not @0@, and
+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer
+--     to an array of @pPropertyCount@ 'CooperativeMatrixPropertiesKHR'
+--     structures
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+--     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'CooperativeMatrixPropertiesKHR', 'Vulkan.Core10.Handles.PhysicalDevice'
+getPhysicalDeviceCooperativeMatrixPropertiesKHR :: forall io
+                                                 . (MonadIO io)
+                                                => -- | @physicalDevice@ is the physical device.
+                                                   PhysicalDevice
+                                                -> io (Result, ("properties" ::: Vector CooperativeMatrixPropertiesKHR))
+getPhysicalDeviceCooperativeMatrixPropertiesKHR physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRPtr = pVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR is null" Nothing Nothing
+  let vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR' = mkVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRPtr
+  let physicalDevice' = physicalDeviceHandle (physicalDevice)
+  pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free
+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" (vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR'
+                                                                                      physicalDevice'
+                                                                                      (pPPropertyCount)
+                                                                                      (nullPtr))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pPropertyCount <- lift $ peek @Word32 pPPropertyCount
+  pPProperties <- ContT $ bracket (callocBytes @CooperativeMatrixPropertiesKHR ((fromIntegral (pPropertyCount)) * 56)) free
+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 56) :: Ptr CooperativeMatrixPropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]
+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" (vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR'
+                                                                                       physicalDevice'
+                                                                                       (pPPropertyCount)
+                                                                                       ((pPProperties)))
+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
+  pPropertyCount' <- lift $ peek @Word32 pPPropertyCount
+  pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @CooperativeMatrixPropertiesKHR (((pPProperties) `advancePtrBytes` (56 * (i)) :: Ptr CooperativeMatrixPropertiesKHR)))
+  pure $ ((r'), pProperties')
+
+
+-- | VkPhysicalDeviceCooperativeMatrixFeaturesKHR - Structure describing
+-- cooperative matrix features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCooperativeMatrixFeaturesKHR' 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. 'PhysicalDeviceCooperativeMatrixFeaturesKHR' /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_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCooperativeMatrixFeaturesKHR = PhysicalDeviceCooperativeMatrixFeaturesKHR
+  { -- | #features-cooperativeMatrix# @cooperativeMatrix@ indicates that the
+    -- implementation supports the @CooperativeMatrixKHR@ SPIR-V capability.
+    cooperativeMatrix :: Bool
+  , -- | #features-cooperativeMatrixRobustBufferAccess#
+    -- @cooperativeMatrixRobustBufferAccess@ indicates that the implementation
+    -- supports robust buffer access for SPIR-V @OpCooperativeMatrixLoadKHR@
+    -- and @OpCooperativeMatrixStoreKHR@ instructions.
+    cooperativeMatrixRobustBufferAccess :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCooperativeMatrixFeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceCooperativeMatrixFeaturesKHR
+
+instance ToCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCooperativeMatrixFeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrix))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixRobustBufferAccess))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR)
+    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 PhysicalDeviceCooperativeMatrixFeaturesKHR where
+  peekCStruct p = do
+    cooperativeMatrix <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    cooperativeMatrixRobustBufferAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceCooperativeMatrixFeaturesKHR
+             (bool32ToBool cooperativeMatrix)
+             (bool32ToBool cooperativeMatrixRobustBufferAccess)
+
+instance Storable PhysicalDeviceCooperativeMatrixFeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCooperativeMatrixFeaturesKHR where
+  zero = PhysicalDeviceCooperativeMatrixFeaturesKHR
+           zero
+           zero
+
+
+-- | VkCooperativeMatrixPropertiesKHR - Structure specifying cooperative
+-- matrix properties
+--
+-- = Description
+--
+-- If some types are preferred over other types (e.g. for performance),
+-- they /should/ appear earlier in the list enumerated by
+-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'.
+--
+-- At least one entry in the list /must/ have power of two values for all
+-- of @MSize@, @KSize@, and @NSize@.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'ComponentTypeKHR', 'ScopeKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+data CooperativeMatrixPropertiesKHR = CooperativeMatrixPropertiesKHR
+  { -- | @MSize@ is the number of rows in matrices @A@, @C@, and
+    -- 'Vulkan.Core10.Enums.Result.Result'.
+    mSize :: Word32
+  , -- | @NSize@ is the number of columns in matrices @B@, @C@,
+    -- 'Vulkan.Core10.Enums.Result.Result'.
+    nSize :: Word32
+  , -- | @KSize@ is the number of columns in matrix @A@ and rows in matrix @B@.
+    kSize :: Word32
+  , -- | @AType@ is the component type of matrix @A@, of type 'ComponentTypeKHR'.
+    --
+    -- #VUID-VkCooperativeMatrixPropertiesKHR-AType-parameter# @AType@ /must/
+    -- be a valid 'ComponentTypeKHR' value
+    aType :: ComponentTypeKHR
+  , -- | @BType@ is the component type of matrix @B@, of type 'ComponentTypeKHR'.
+    --
+    -- #VUID-VkCooperativeMatrixPropertiesKHR-BType-parameter# @BType@ /must/
+    -- be a valid 'ComponentTypeKHR' value
+    bType :: ComponentTypeKHR
+  , -- | @CType@ is the component type of matrix @C@, of type 'ComponentTypeKHR'.
+    --
+    -- #VUID-VkCooperativeMatrixPropertiesKHR-CType-parameter# @CType@ /must/
+    -- be a valid 'ComponentTypeKHR' value
+    cType :: ComponentTypeKHR
+  , -- | @ResultType@ is the component type of matrix
+    -- 'Vulkan.Core10.Enums.Result.Result', of type 'ComponentTypeKHR'.
+    --
+    -- #VUID-VkCooperativeMatrixPropertiesKHR-ResultType-parameter#
+    -- @ResultType@ /must/ be a valid 'ComponentTypeKHR' value
+    resultType :: ComponentTypeKHR
+  , -- | @saturatingAccumulation@ indicates whether the @SaturatingAccumulation@
+    -- operand to @OpCooperativeMatrixMulAddKHR@ /must/ be present.
+    saturatingAccumulation :: Bool
+  , -- | @scope@ is the scope of all the matrix types, of type 'ScopeKHR'.
+    --
+    -- #VUID-VkCooperativeMatrixPropertiesKHR-scope-parameter# @scope@ /must/
+    -- be a valid 'ScopeKHR' value
+    scope :: ScopeKHR
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CooperativeMatrixPropertiesKHR)
+#endif
+deriving instance Show CooperativeMatrixPropertiesKHR
+
+instance ToCStruct CooperativeMatrixPropertiesKHR where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CooperativeMatrixPropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (mSize)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (nSize)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (kSize)
+    poke ((p `plusPtr` 28 :: Ptr ComponentTypeKHR)) (aType)
+    poke ((p `plusPtr` 32 :: Ptr ComponentTypeKHR)) (bType)
+    poke ((p `plusPtr` 36 :: Ptr ComponentTypeKHR)) (cType)
+    poke ((p `plusPtr` 40 :: Ptr ComponentTypeKHR)) (resultType)
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (saturatingAccumulation))
+    poke ((p `plusPtr` 48 :: Ptr ScopeKHR)) (scope)
+    f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr ComponentTypeKHR)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr ComponentTypeKHR)) (zero)
+    poke ((p `plusPtr` 36 :: Ptr ComponentTypeKHR)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr ComponentTypeKHR)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 48 :: Ptr ScopeKHR)) (zero)
+    f
+
+instance FromCStruct CooperativeMatrixPropertiesKHR where
+  peekCStruct p = do
+    mSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    nSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    kSize <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    aType <- peek @ComponentTypeKHR ((p `plusPtr` 28 :: Ptr ComponentTypeKHR))
+    bType <- peek @ComponentTypeKHR ((p `plusPtr` 32 :: Ptr ComponentTypeKHR))
+    cType <- peek @ComponentTypeKHR ((p `plusPtr` 36 :: Ptr ComponentTypeKHR))
+    resultType <- peek @ComponentTypeKHR ((p `plusPtr` 40 :: Ptr ComponentTypeKHR))
+    saturatingAccumulation <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
+    scope <- peek @ScopeKHR ((p `plusPtr` 48 :: Ptr ScopeKHR))
+    pure $ CooperativeMatrixPropertiesKHR
+             mSize
+             nSize
+             kSize
+             aType
+             bType
+             cType
+             resultType
+             (bool32ToBool saturatingAccumulation)
+             scope
+
+instance Storable CooperativeMatrixPropertiesKHR where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero CooperativeMatrixPropertiesKHR where
+  zero = CooperativeMatrixPropertiesKHR
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceCooperativeMatrixPropertiesKHR - Structure describing
+-- cooperative matrix properties supported by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCooperativeMatrixPropertiesKHR' 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_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCooperativeMatrixPropertiesKHR = PhysicalDeviceCooperativeMatrixPropertiesKHR
+  { -- | #limits-cooperativeMatrixSupportedStages#
+    -- @cooperativeMatrixSupportedStages@ is a bitfield of
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing
+    -- the shader stages that cooperative matrix instructions are supported in.
+    -- @cooperativeMatrixSupportedStages@ will have the
+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit
+    -- set if any of the physical device’s queues support
+    -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'.
+    cooperativeMatrixSupportedStages :: ShaderStageFlags }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCooperativeMatrixPropertiesKHR)
+#endif
+deriving instance Show PhysicalDeviceCooperativeMatrixPropertiesKHR
+
+instance ToCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCooperativeMatrixPropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) (cooperativeMatrixSupportedStages)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR where
+  peekCStruct p = do
+    cooperativeMatrixSupportedStages <- peek @ShaderStageFlags ((p `plusPtr` 16 :: Ptr ShaderStageFlags))
+    pure $ PhysicalDeviceCooperativeMatrixPropertiesKHR
+             cooperativeMatrixSupportedStages
+
+instance Storable PhysicalDeviceCooperativeMatrixPropertiesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCooperativeMatrixPropertiesKHR where
+  zero = PhysicalDeviceCooperativeMatrixPropertiesKHR
+           zero
+
+
+-- | VkScopeKHR - Specify SPIR-V scope
+--
+-- = Description
+--
+-- All enum values match the corresponding SPIR-V value.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'CooperativeMatrixPropertiesKHR'
+newtype ScopeKHR = ScopeKHR Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error
+
+-- | 'SCOPE_DEVICE_KHR' corresponds to SPIR-V 'Vulkan.Core10.Handles.Device'
+-- scope.
+pattern SCOPE_DEVICE_KHR = ScopeKHR 1
+
+-- | 'SCOPE_WORKGROUP_KHR' corresponds to SPIR-V @Workgroup@ scope.
+pattern SCOPE_WORKGROUP_KHR = ScopeKHR 2
+
+-- | 'SCOPE_SUBGROUP_KHR' corresponds to SPIR-V @Subgroup@ scope.
+pattern SCOPE_SUBGROUP_KHR = ScopeKHR 3
+
+-- | 'SCOPE_QUEUE_FAMILY_KHR' corresponds to SPIR-V @QueueFamily@ scope.
+pattern SCOPE_QUEUE_FAMILY_KHR = ScopeKHR 5
+
+{-# COMPLETE
+  SCOPE_DEVICE_KHR
+  , SCOPE_WORKGROUP_KHR
+  , SCOPE_SUBGROUP_KHR
+  , SCOPE_QUEUE_FAMILY_KHR ::
+    ScopeKHR
+  #-}
+
+conNameScopeKHR :: String
+conNameScopeKHR = "ScopeKHR"
+
+enumPrefixScopeKHR :: String
+enumPrefixScopeKHR = "SCOPE_"
+
+showTableScopeKHR :: [(ScopeKHR, String)]
+showTableScopeKHR =
+  [ (SCOPE_DEVICE_KHR, "DEVICE_KHR")
+  , (SCOPE_WORKGROUP_KHR, "WORKGROUP_KHR")
+  , (SCOPE_SUBGROUP_KHR, "SUBGROUP_KHR")
+  , (SCOPE_QUEUE_FAMILY_KHR, "QUEUE_FAMILY_KHR")
+  ]
+
+instance Show ScopeKHR where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixScopeKHR
+      showTableScopeKHR
+      conNameScopeKHR
+      (\(ScopeKHR x) -> x)
+      (showsPrec 11)
+
+instance Read ScopeKHR where
+  readPrec =
+    enumReadPrec
+      enumPrefixScopeKHR
+      showTableScopeKHR
+      conNameScopeKHR
+      ScopeKHR
+
+-- | VkComponentTypeKHR - Specify SPIR-V cooperative matrix component type
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrix VK_KHR_cooperative_matrix>,
+-- 'CooperativeMatrixPropertiesKHR'
+newtype ComponentTypeKHR = ComponentTypeKHR Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'COMPONENT_TYPE_FLOAT16_KHR' corresponds to SPIR-V @OpTypeFloat@ 16.
+pattern COMPONENT_TYPE_FLOAT16_KHR = ComponentTypeKHR 0
+
+-- | 'COMPONENT_TYPE_FLOAT32_KHR' corresponds to SPIR-V @OpTypeFloat@ 32.
+pattern COMPONENT_TYPE_FLOAT32_KHR = ComponentTypeKHR 1
+
+-- | 'COMPONENT_TYPE_FLOAT64_KHR' corresponds to SPIR-V @OpTypeFloat@ 64.
+pattern COMPONENT_TYPE_FLOAT64_KHR = ComponentTypeKHR 2
+
+-- | 'COMPONENT_TYPE_SINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 1.
+pattern COMPONENT_TYPE_SINT8_KHR = ComponentTypeKHR 3
+
+-- | 'COMPONENT_TYPE_SINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 1.
+pattern COMPONENT_TYPE_SINT16_KHR = ComponentTypeKHR 4
+
+-- | 'COMPONENT_TYPE_SINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 1.
+pattern COMPONENT_TYPE_SINT32_KHR = ComponentTypeKHR 5
+
+-- | 'COMPONENT_TYPE_SINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 1.
+pattern COMPONENT_TYPE_SINT64_KHR = ComponentTypeKHR 6
+
+-- | 'COMPONENT_TYPE_UINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 0.
+pattern COMPONENT_TYPE_UINT8_KHR = ComponentTypeKHR 7
+
+-- | 'COMPONENT_TYPE_UINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 0.
+pattern COMPONENT_TYPE_UINT16_KHR = ComponentTypeKHR 8
+
+-- | 'COMPONENT_TYPE_UINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 0.
+pattern COMPONENT_TYPE_UINT32_KHR = ComponentTypeKHR 9
+
+-- | 'COMPONENT_TYPE_UINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 0.
+pattern COMPONENT_TYPE_UINT64_KHR = ComponentTypeKHR 10
+
+{-# COMPLETE
+  COMPONENT_TYPE_FLOAT16_KHR
+  , COMPONENT_TYPE_FLOAT32_KHR
+  , COMPONENT_TYPE_FLOAT64_KHR
+  , COMPONENT_TYPE_SINT8_KHR
+  , COMPONENT_TYPE_SINT16_KHR
+  , COMPONENT_TYPE_SINT32_KHR
+  , COMPONENT_TYPE_SINT64_KHR
+  , COMPONENT_TYPE_UINT8_KHR
+  , COMPONENT_TYPE_UINT16_KHR
+  , COMPONENT_TYPE_UINT32_KHR
+  , COMPONENT_TYPE_UINT64_KHR ::
+    ComponentTypeKHR
+  #-}
+
+conNameComponentTypeKHR :: String
+conNameComponentTypeKHR = "ComponentTypeKHR"
+
+enumPrefixComponentTypeKHR :: String
+enumPrefixComponentTypeKHR = "COMPONENT_TYPE_"
+
+showTableComponentTypeKHR :: [(ComponentTypeKHR, String)]
+showTableComponentTypeKHR =
+  [ (COMPONENT_TYPE_FLOAT16_KHR, "FLOAT16_KHR")
+  , (COMPONENT_TYPE_FLOAT32_KHR, "FLOAT32_KHR")
+  , (COMPONENT_TYPE_FLOAT64_KHR, "FLOAT64_KHR")
+  , (COMPONENT_TYPE_SINT8_KHR, "SINT8_KHR")
+  , (COMPONENT_TYPE_SINT16_KHR, "SINT16_KHR")
+  , (COMPONENT_TYPE_SINT32_KHR, "SINT32_KHR")
+  , (COMPONENT_TYPE_SINT64_KHR, "SINT64_KHR")
+  , (COMPONENT_TYPE_UINT8_KHR, "UINT8_KHR")
+  , (COMPONENT_TYPE_UINT16_KHR, "UINT16_KHR")
+  , (COMPONENT_TYPE_UINT32_KHR, "UINT32_KHR")
+  , (COMPONENT_TYPE_UINT64_KHR, "UINT64_KHR")
+  ]
+
+instance Show ComponentTypeKHR where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixComponentTypeKHR
+      showTableComponentTypeKHR
+      conNameComponentTypeKHR
+      (\(ComponentTypeKHR x) -> x)
+      (showsPrec 11)
+
+instance Read ComponentTypeKHR where
+  readPrec =
+    enumReadPrec
+      enumPrefixComponentTypeKHR
+      showTableComponentTypeKHR
+      conNameComponentTypeKHR
+      ComponentTypeKHR
+
+type KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2
+
+-- No documentation found for TopLevel "VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION"
+pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2
+
+
+type KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix"
+
+-- No documentation found for TopLevel "VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME"
+pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot
@@ -0,0 +1,179 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_cooperative_matrix - device extension
+--
+-- == VK_KHR_cooperative_matrix
+--
+-- [__Name String__]
+--     @VK_KHR_cooperative_matrix@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     507
+--
+-- [__Revision__]
+--     2
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Kevin Petit
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_cooperative_matrix] @kpet%0A*Here describe the issue or question you have about the VK_KHR_cooperative_matrix extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-03
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_cooperative_matrix.html SPV_KHR_cooperative_matrix>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Markus Tavenrath, NVIDIA
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Kevin Petit, Arm Ltd.
+--
+--     -   Boris Zanin, AMD
+--
+-- == Description
+--
+-- This extension adds support for using cooperative matrix types in
+-- SPIR-V. Cooperative matrix types are medium-sized matrices that are
+-- primarily supported in compute shaders, where the storage for the matrix
+-- is spread across all invocations in some scope (usually a subgroup) and
+-- those invocations cooperate to efficiently perform matrix multiplies.
+--
+-- Cooperative matrix types are defined by the
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_cooperative_matrix.html SPV_KHR_cooperative_matrix>
+-- SPIR-V extension and can be used with the
+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GLSL_KHR_cooperative_matrix.txt GLSL_KHR_cooperative_matrix>
+-- GLSL extension.
+--
+-- This extension includes support for enumerating the matrix types and
+-- dimensions that are supported by the implementation.
+--
+-- == New Commands
+--
+-- -   'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+--
+-- == New Structures
+--
+-- -   'CooperativeMatrixPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCooperativeMatrixFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceCooperativeMatrixPropertiesKHR'
+--
+-- == New Enums
+--
+-- -   'ComponentTypeKHR'
+--
+-- -   'ScopeKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_COOPERATIVE_MATRIX_EXTENSION_NAME'
+--
+-- -   'KHR_COOPERATIVE_MATRIX_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR'
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixKHR CooperativeMatrixKHR>
+--
+-- == Version History
+--
+-- -   Revision 2, 2023-05-03 (Kevin Petit)
+--
+--     -   First KHR revision
+--
+-- -   Revision 1, 2019-02-05 (Jeff Bolz)
+--
+--     -   NVIDIA vendor extension
+--
+-- == See Also
+--
+-- 'ComponentTypeKHR', 'CooperativeMatrixPropertiesKHR',
+-- 'PhysicalDeviceCooperativeMatrixFeaturesKHR',
+-- 'PhysicalDeviceCooperativeMatrixPropertiesKHR', 'ScopeKHR',
+-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_cooperative_matrix Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_cooperative_matrix  ( CooperativeMatrixPropertiesKHR
+                                                    , PhysicalDeviceCooperativeMatrixFeaturesKHR
+                                                    , PhysicalDeviceCooperativeMatrixPropertiesKHR
+                                                    , ScopeKHR
+                                                    , ComponentTypeKHR
+                                                    ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data CooperativeMatrixPropertiesKHR
+
+instance ToCStruct CooperativeMatrixPropertiesKHR
+instance Show CooperativeMatrixPropertiesKHR
+
+instance FromCStruct CooperativeMatrixPropertiesKHR
+
+
+data PhysicalDeviceCooperativeMatrixFeaturesKHR
+
+instance ToCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR
+instance Show PhysicalDeviceCooperativeMatrixFeaturesKHR
+
+instance FromCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR
+
+
+data PhysicalDeviceCooperativeMatrixPropertiesKHR
+
+instance ToCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR
+instance Show PhysicalDeviceCooperativeMatrixPropertiesKHR
+
+instance FromCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR
+
+
+data ScopeKHR
+
+
+data ComponentTypeKHR
+
diff --git a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
--- a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs b/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs
--- a/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview VK_KHR_multiview>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs b/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs
--- a/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs
+++ b/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
@@ -117,26 +120,26 @@
 -- >     VkResult result = vkCreateImage(
 -- >         device,
 -- >         &imageCreateInfo,
--- >         NULL,                               // pAllocator
+-- >         NULL,               // pAllocator
 -- >         &image);
 -- >
 -- >     VkMemoryDedicatedRequirementsKHR dedicatedRequirements =
 -- >     {
--- >         VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
--- >         NULL,                               // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
+-- >         .pNext = NULL,
 -- >     };
 -- >
 -- >     VkMemoryRequirements2 memoryRequirements =
 -- >     {
--- >         VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
--- >         &dedicatedRequirements,             // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
+-- >         .pNext = &dedicatedRequirements,
 -- >     };
 -- >
 -- >     const VkImageMemoryRequirementsInfo2 imageRequirementsInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
--- >         NULL,                               // pNext
--- >         image
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
+-- >         .pNext = NULL,
+-- >         .image = image
 -- >     };
 -- >
 -- >     vkGetImageMemoryRequirements2(
@@ -150,25 +153,25 @@
 -- >
 -- >         VkMemoryDedicatedAllocateInfoKHR dedicatedInfo =
 -- >         {
--- >             VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,   // sType
--- >             NULL,                                                   // pNext
--- >             image,                                                  // image
--- >             VK_NULL_HANDLE,                                         // buffer
+-- >             .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
+-- >             .pNext = NULL,
+-- >             .image = image,
+-- >             .buffer = VK_NULL_HANDLE,
 -- >         };
 -- >
 -- >         VkMemoryAllocateInfo memoryAllocateInfo =
 -- >         {
--- >             VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,                 // sType
--- >             &dedicatedInfo,                                         // pNext
--- >             memoryRequirements.size,                                // allocationSize
--- >             FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), // memoryTypeIndex
+-- >             .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
+-- >             .pNext = &dedicatedInfo,
+-- >             .allocationSize = memoryRequirements.size,
+-- >             .memoryTypeIndex = FindMemoryTypeIndex(memoryRequirements.memoryTypeBits),
 -- >         };
 -- >
 -- >         VkDeviceMemory memory;
 -- >         vkAllocateMemory(
 -- >             device,
 -- >             &memoryAllocateInfo,
--- >             NULL,                       // pAllocator
+-- >             NULL,               // pAllocator
 -- >             &memory);
 -- >
 -- >         // Bind the image to the memory
diff --git a/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs b/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs
--- a/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs
+++ b/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Josh Barczak
diff --git a/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs b/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs
--- a/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs
+++ b/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs b/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs
--- a/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs
+++ b/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_device_group.hs b/src/Vulkan/Extensions/VK_KHR_device_group.hs
--- a/src/Vulkan/Extensions/VK_KHR_device_group.hs
+++ b/src/Vulkan/Extensions/VK_KHR_device_group.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group_creation VK_KHR_device_group_creation>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs b/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs
--- a/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs
+++ b/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_display.hs b/src/Vulkan/Extensions/VK_KHR_display.hs
--- a/src/Vulkan/Extensions/VK_KHR_display.hs
+++ b/src/Vulkan/Extensions/VK_KHR_display.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     23
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -397,7 +400,7 @@
 --
 --     -   Added an “extension type” section to the specification header.
 --
---     -   Re-used the VK_EXT_KHR_surface surface transform enumerations
+--     -   Reused the VK_EXT_KHR_surface surface transform enumerations
 --         rather than redefining them here.
 --
 --     -   Updated the example code to use the new semantics.
@@ -1122,6 +1125,9 @@
 -- -   #VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter#
 --     @pCapabilities@ /must/ be a valid pointer to a
 --     'DisplayPlaneCapabilitiesKHR' structure
+--
+-- -   #VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parent# @mode@ /must/
+--     have been created, allocated, or retrieved from @physicalDevice@
 --
 -- == Host Synchronization
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_display.hs-boot b/src/Vulkan/Extensions/VK_KHR_display.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_display.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_display.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     23
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -397,7 +400,7 @@
 --
 --     -   Added an “extension type” section to the specification header.
 --
---     -   Re-used the VK_EXT_KHR_surface surface transform enumerations
+--     -   Reused the VK_EXT_KHR_surface surface transform enumerations
 --         rather than redefining them here.
 --
 --     -   Updated the example code to use the new semantics.
diff --git a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs
--- a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs
+++ b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     10
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -155,7 +158,7 @@
 --
 -- -   Revision 4, 2015-09-08 (James Jones)
 --
---     -   Allow creating multiple swap chains that share the same images
+--     -   Allow creating multiple swapchains that share the same images
 --         using a single call to vkCreateSwapchainKHR().
 --
 -- -   Revision 5, 2015-09-10 (Alon Or-bach)
diff --git a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     10
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -155,7 +158,7 @@
 --
 -- -   Revision 4, 2015-09-08 (James Jones)
 --
---     -   Allow creating multiple swap chains that share the same images
+--     -   Allow creating multiple swapchains that share the same images
 --         using a single call to vkCreateSwapchainKHR().
 --
 -- -   Revision 5, 2015-09-10 (Alon Or-bach)
diff --git a/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs b/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs
--- a/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs
+++ b/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_driver_properties.hs b/src/Vulkan/Extensions/VK_KHR_driver_properties.hs
--- a/src/Vulkan/Extensions/VK_KHR_driver_properties.hs
+++ b/src/Vulkan/Extensions/VK_KHR_driver_properties.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs
--- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs
+++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
@@ -692,7 +695,7 @@
 -- 'AttachmentSampleCountInfoAMD' /can/ also be included in the @pNext@
 -- chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'. When a
 -- graphics pipeline is created without a
--- 'Vulkan.Core10.Handles.RenderPass', if this structure is present in the
+-- 'Vulkan.Core10.Handles.RenderPass', if this structure is included in the
 -- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it
 -- specifies the sample count of attachments used for rendering. If this
 -- structure is not specified, and the pipeline does not include a
diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence.hs b/src/Vulkan/Extensions/VK_KHR_external_fence.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_fence.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities VK_KHR_external_fence_capabilities>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence VK_KHR_external_fence>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence VK_KHR_external_fence>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence VK_KHR_external_fence>
 --
@@ -483,9 +486,9 @@
 -- is included in the @pNext@ chain of
 -- 'Vulkan.Core10.Fence.FenceCreateInfo' with a Windows @handleType@, but
 -- either 'ExportFenceWin32HandleInfoKHR' is not included in the @pNext@
--- chain, or if it is but @pAttributes@ is set to @NULL@, default security
--- descriptor values will be used, and child processes created by the
--- application will not inherit the handle, as described in the MSDN
+-- chain, or it is included but @pAttributes@ is set to @NULL@, default
+-- security descriptor values will be used, and child processes created by
+-- the application will not inherit the handle, as described in the MSDN
 -- documentation for “Synchronization Object Security and Access Rights”1.
 -- Further, if the structure is not present, the access rights will be
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence VK_KHR_external_fence>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory.hs b/src/Vulkan/Extensions/VK_KHR_external_memory.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities VK_KHR_external_memory_capabilities>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --     or
@@ -309,8 +312,8 @@
                             ExternalMemoryHandleTypeFlagBits
                          -> -- | @fd@ is the handle which will be imported.
                             --
-                            -- #VUID-vkGetMemoryFdPropertiesKHR-fd-00673# @fd@ /must/ be an external
-                            -- memory handle created outside of the Vulkan API
+                            -- #VUID-vkGetMemoryFdPropertiesKHR-fd-00673# @fd@ /must/ point to a valid
+                            -- POSIX file descriptor memory handle
                             ("fd" ::: Int32)
                          -> io (MemoryFdPropertiesKHR)
 getMemoryFdPropertiesKHR device handleType fd = liftIO . evalContT $ do
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --
@@ -328,7 +331,7 @@
                                   -> -- | @handle@ is the handle which will be imported.
                                      --
                                      -- #VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665# @handle@ /must/
-                                     -- be an external memory handle created outside of the Vulkan API
+                                     -- point to a valid Windows memory handle
                                      HANDLE
                                   -> io (MemoryWin32HandlePropertiesKHR)
 getMemoryWin32HandlePropertiesKHR device
@@ -503,12 +506,12 @@
 -- is included in the @pNext@ chain of
 -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' with a Windows @handleType@,
 -- but either 'ExportMemoryWin32HandleInfoKHR' is not included in the
--- @pNext@ chain, or if it is but @pAttributes@ is set to @NULL@, default
--- security descriptor values will be used, and child processes created by
--- the application will not inherit the handle, as described in the MSDN
--- documentation for “Synchronization Object Security and Access Rights”1.
--- Further, if the structure is not present, the access rights used depend
--- on the handle type.
+-- @pNext@ chain, or it is included but @pAttributes@ is set to @NULL@,
+-- default security descriptor values will be used, and child processes
+-- created by the application will not inherit the handle, as described in
+-- the MSDN documentation for “Synchronization Object Security and Access
+-- Rights”1. Further, if the structure is not present, the access rights
+-- used depend on the handle type.
 --
 -- For handles of the following types:
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_capabilities>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore VK_KHR_external_semaphore>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore VK_KHR_external_semaphore>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore VK_KHR_external_semaphore>
 --
@@ -557,12 +560,12 @@
 -- is included in the @pNext@ chain of
 -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' with a Windows
 -- @handleType@, but either 'ExportSemaphoreWin32HandleInfoKHR' is not
--- included in the @pNext@ chain, or if it is but @pAttributes@ is set to
--- @NULL@, default security descriptor values will be used, and child
--- processes created by the application will not inherit the handle, as
--- described in the MSDN documentation for “Synchronization Object Security
--- and Access Rights”1. Further, if the structure is not present, the
--- access rights used depend on the handle type.
+-- included in the @pNext@ chain, or it is included but @pAttributes@ is
+-- set to @NULL@, default security descriptor values will be used, and
+-- child processes created by the application will not inherit the handle,
+-- as described in the MSDN documentation for “Synchronization Object
+-- Security and Access Rights”1. Further, if the structure is not present,
+-- the access rights used depend on the handle type.
 --
 -- For handles of the following types:
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore VK_KHR_external_semaphore>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs b/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs
--- a/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -279,6 +282,21 @@
 -- | VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR - Structure
 -- describing fragment shader barycentric limits of an implementation
 --
+-- = Members
+--
+-- -   #limits-triStripVertexOrderIndependentOfProvokingVertex# When the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading provoking vertex mode>
+--     is
+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT',
+--     and the primitive order is odd in a triangle strip, the ordering of
+--     vertices is defined in
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric-order-table-last-vertex last vertex table>.
+--     @triStripVertexOrderIndependentOfProvokingVertex@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE' indicates that the
+--     implementation ignores this and uses the vertex order defined by
+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT'
+--     instead.
+--
 -- = Description
 --
 -- If the 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR' structure
@@ -297,15 +315,7 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
-  { -- | #limits-triStripVertexOrderIndependentOfProvokingVertex#
-    -- @triStripVertexOrderIndependentOfProvokingVertex@ indicates that the
-    -- implementation does not change its vertex numbering for triangle strip
-    -- primitives when the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading provoking vertex mode>
-    -- is
-    -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT',
-    -- as shown in the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric-order-table-last-vertex last vertex table>.
+  { -- No documentation found for Nested "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR" "triStripVertexOrderIndependentOfProvokingVertex"
     triStripVertexOrderIndependentOfProvokingVertex :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
@@ -415,8 +418,8 @@
 --     @pFragmentSize@ /must/ be a valid pointer to a valid
 --     'Vulkan.Core10.FundamentalTypes.Extent2D' structure
 --
--- -   #VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter# Any
---     given element of @combinerOps@ /must/ be a valid
+-- -   #VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter# Each
+--     element of @combinerOps@ /must/ be a valid
 --     'FragmentShadingRateCombinerOpKHR' value
 --
 -- -   #VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording#
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --         
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
diff --git a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
 --
@@ -41,10 +44,10 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query device display
--- properties and capabilities in a way that can be easily extended by
--- other extensions, without introducing any further entry points. This
--- extension can be considered the @VK_KHR_display@ equivalent of the
+-- This extension provides new queries for device display properties and
+-- capabilities that can be easily extended by other extensions, without
+-- introducing any further queries. This extension can be considered the
+-- @VK_KHR_display@ equivalent of the
 -- @VK_KHR_get_physical_device_properties2@ extension.
 --
 -- == New Commands
diff --git a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display VK_KHR_display>
 --
@@ -41,10 +44,10 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query device display
--- properties and capabilities in a way that can be easily extended by
--- other extensions, without introducing any further entry points. This
--- extension can be considered the @VK_KHR_display@ equivalent of the
+-- This extension provides new queries for device display properties and
+-- capabilities that can be easily extended by other extensions, without
+-- introducing any further queries. This extension can be considered the
+-- @VK_KHR_display@ equivalent of the
 -- @VK_KHR_get_physical_device_properties2@ extension.
 --
 -- == New Commands
diff --git a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
 --
@@ -49,9 +52,9 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query memory requirements of
--- images and buffers in a way that can be easily extended by other
--- extensions, without introducing any further entry points. The Vulkan 1.0
+-- This extension provides new queries for memory requirements of images
+-- and buffers that can be easily extended by other extensions, without
+-- introducing any further entry points. The Vulkan 1.0
 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements' and
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements'
 -- structures do not include @sType@ and @pNext@ members. This extension
diff --git a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
 --
@@ -49,9 +52,9 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query memory requirements of
--- images and buffers in a way that can be easily extended by other
--- extensions, without introducing any further entry points. The Vulkan 1.0
+-- This extension provides new queries for memory requirements of images
+-- and buffers that can be easily extended by other extensions, without
+-- introducing any further entry points. The Vulkan 1.0
 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements' and
 -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements'
 -- structures do not include @sType@ and @pNext@ members. This extension
diff --git a/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs b/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
 --
@@ -47,17 +50,17 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query device features,
--- device properties, and format properties in a way that can be easily
--- extended by other extensions, without introducing any further entry
--- points. The Vulkan 1.0 feature\/limit\/formatproperty structures do not
--- include @sType@\/@pNext@ members. This extension wraps them in new
--- structures with @sType@\/@pNext@ members, so an application can query a
--- chain of feature\/limit\/formatproperty structures by constructing the
--- chain and letting the implementation fill them in. A new command is
--- added for each @vkGetPhysicalDevice*@ command in core Vulkan 1.0. The
--- new feature structure (and a @pNext@ chain of extending structures) can
--- also be passed in to device creation to enable features.
+-- This extension provides new queries for device features, device
+-- properties, and format properties that can be easily extended by other
+-- extensions, without introducing any further queries. The Vulkan 1.0
+-- feature\/limit\/formatproperty structures do not include
+-- @sType@\/@pNext@ members. This extension wraps them in new structures
+-- with @sType@\/@pNext@ members, so an application can query a chain of
+-- feature\/limit\/formatproperty structures by constructing the chain and
+-- letting the implementation fill them in. A new command is added for each
+-- @vkGetPhysicalDevice*@ command in core Vulkan 1.0. The new feature
+-- structure (and a @pNext@ chain of extending structures) can also be
+-- passed in to device creation to enable features.
 --
 -- This extension also allows applications to use the physical-device
 -- components of device extensions before
@@ -138,14 +141,14 @@
 -- >     // Get features with a hypothetical future extension.
 -- >     VkHypotheticalExtensionFeaturesKHR hypotheticalFeatures =
 -- >     {
--- >         VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,                // sType
--- >         NULL,                                                       // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,
+-- >         .pNext = NULL,
 -- >     };
 -- >
 -- >     VkPhysicalDeviceFeatures2KHR features =
 -- >     {
--- >         VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,           // sType
--- >         &hypotheticalFeatures,                                      // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
+-- >         .pNext = &hypotheticalFeatures,
 -- >     };
 -- >
 -- >     // After this call, features and hypotheticalFeatures have been filled out.
@@ -156,14 +159,14 @@
 -- >     // Enable some features:
 -- >     VkHypotheticalExtensionFeaturesKHR enabledHypotheticalFeatures =
 -- >     {
--- >         VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,                // sType
--- >         NULL,                                                       // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,
+-- >         .pNext = NULL,
 -- >     };
 -- >
 -- >     VkPhysicalDeviceFeatures2KHR enabledFeatures =
 -- >     {
--- >         VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,           // sType
--- >         &enabledHypotheticalFeatures,                               // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
+-- >         .pNext = &enabledHypotheticalFeatures,
 -- >     };
 -- >
 -- >     enabledFeatures.features.xyz = VK_TRUE;
@@ -171,10 +174,10 @@
 -- >
 -- >     VkDeviceCreateInfo deviceCreateInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,                       // sType
--- >         &enabledFeatures,                                           // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
+-- >         .pNext = &enabledFeatures,
 -- >         ...
--- >         NULL,                                                       // pEnabledFeatures
+-- >         .pEnabledFeatures = NULL,
 -- >     };
 -- >
 -- >     VkDevice device;
diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -43,11 +46,10 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query device surface
--- capabilities in a way that can be easily extended by other extensions,
--- without introducing any further entry points. This extension can be
--- considered the @VK_KHR_surface@ equivalent of the
--- @VK_KHR_get_physical_device_properties2@ extension.
+-- This extension provides new queries for device surface capabilities that
+-- can be easily extended by other extensions, without introducing any
+-- further queries. This extension can be considered the @VK_KHR_surface@
+-- equivalent of the @VK_KHR_get_physical_device_properties2@ extension.
 --
 -- == New Commands
 --
@@ -205,6 +207,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT)
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceCapabilities2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceFormats2KHR))
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySurfaceCapabilitiesNV)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.Core10.Handles (PhysicalDevice)
@@ -655,6 +658,7 @@
 --     any structure (including this one) in the @pNext@ chain /must/ be
 --     either @NULL@ or a pointer to a valid instance of
 --     'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',
+--     'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV',
 --     'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR',
 --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',
 --     'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',
@@ -692,6 +696,7 @@
   getNext SurfaceCapabilities2KHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SurfaceCapabilities2KHR e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @LatencySurfaceCapabilitiesNV = Just f
     | Just Refl <- eqT @e @SurfacePresentModeCompatibilityEXT = Just f
     | Just Refl <- eqT @e @SurfacePresentScalingCapabilitiesEXT = Just f
     | Just Refl <- eqT @e @SurfaceCapabilitiesPresentBarrierNV = Just f
diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -43,11 +46,10 @@
 --
 -- == Description
 --
--- This extension provides new entry points to query device surface
--- capabilities in a way that can be easily extended by other extensions,
--- without introducing any further entry points. This extension can be
--- considered the @VK_KHR_surface@ equivalent of the
--- @VK_KHR_get_physical_device_properties2@ extension.
+-- This extension provides new queries for device surface capabilities that
+-- can be easily extended by other extensions, without introducing any
+-- further queries. This extension can be considered the @VK_KHR_surface@
+-- equivalent of the @VK_KHR_get_physical_device_properties2@ extension.
 --
 -- == New Commands
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_global_priority.hs b/src/Vulkan/Extensions/VK_KHR_global_priority.hs
--- a/src/Vulkan/Extensions/VK_KHR_global_priority.hs
+++ b/src/Vulkan/Extensions/VK_KHR_global_priority.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -404,7 +407,7 @@
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'
 --
 -- -   #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter#
---     Any given element of @priorities@ /must/ be a valid
+--     Each element of @priorities@ /must/ be a valid
 --     'QueueGlobalPriorityKHR' value
 --
 -- = See Also
diff --git a/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot b/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_image_format_list.hs b/src/Vulkan/Extensions/VK_KHR_image_format_list.hs
--- a/src/Vulkan/Extensions/VK_KHR_image_format_list.hs
+++ b/src/Vulkan/Extensions/VK_KHR_image_format_list.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs b/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs
--- a/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs
+++ b/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 VK_KHR_maintenance2>
 --     and
@@ -24,7 +27,7 @@
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs
--- a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs
+++ b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance1.hs b/src/Vulkan/Extensions/VK_KHR_maintenance1.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance1.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance1.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     2
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance2.hs b/src/Vulkan/Extensions/VK_KHR_maintenance2.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance2.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance3.hs b/src/Vulkan/Extensions/VK_KHR_maintenance3.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance3.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance3.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance4.hs b/src/Vulkan/Extensions/VK_KHR_maintenance4.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance4.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance4.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
@@ -0,0 +1,2295 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_maintenance5 - device extension
+--
+-- == VK_KHR_maintenance5
+--
+-- [__Name String__]
+--     @VK_KHR_maintenance5@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     471
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+--
+-- [__Contact__]
+--
+--     -   Stu Smith
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance5] @stu-s%0A*Here describe the issue or question you have about the VK_KHR_maintenance5 extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_maintenance5.adoc VK_KHR_maintenance5>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-02
+--
+-- [__Interactions and External Dependencies__; __Contributors__]
+--
+--     -   Stu Smith, AMD
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Slawomir Cygan, Intel
+--
+--     -   Lionel Landwerlin, Intel
+--
+--     -   James Fitzpatrick, Imagination Technologies
+--
+--     -   Andrew Garrard, Imagination Technologies
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Mike Blumenkrantz, Valve
+--
+-- == Description
+--
+-- @VK_KHR_maintenance5@ adds a collection of minor features, none of which
+-- would warrant an entire extension of their own.
+--
+-- The new features are as follows:
+--
+-- -   A new 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR'
+--     format
+--
+-- -   A new 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' format
+--
+-- -   A property to indicate that multisample coverage operations are
+--     performed after sample counting in EarlyFragmentTests mode
+--
+-- -   Relax VkBufferView creation requirements by allowing subsets of the
+--     associated VkBuffer usage using 'BufferUsageFlags2CreateInfoKHR'
+--
+-- -   A new entry point 'cmdBindIndexBuffer2KHR', allowing a range of
+--     memory to be bound as an index buffer
+--
+-- -   'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' must return
+--     @NULL@ for supported core functions beyond the version requested by
+--     the application.
+--
+-- -   A property to indicate that the sample mask test is performed after
+--     sample counting in EarlyFragmentTests mode
+--
+-- -   'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     now supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the
+--     @pSizes@ parameter.
+--
+-- -   A default size of 1.0 is used if @PointSize@ is not written
+--
+-- -   Shader modules are deprecated - applications can now pass
+--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo' as a chained struct to
+--     pipeline creation via
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'
+--
+-- -   A function 'getRenderingAreaGranularityKHR' to query the optimal
+--     render area for a dynamic rendering instance.
+--
+-- -   A property to indicate that depth\/stencil texturing operations with
+--     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have
+--     defined behavior
+--
+-- -   Add 'getImageSubresourceLayout2KHR' and a new function
+--     'getDeviceImageSubresourceLayoutKHR' to allow the application to
+--     query the image memory layout without having to create an image
+--     object and query it.
+--
+-- -   Allow 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the
+--     @layerCount@ member of
+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'
+--
+-- -   Adds stronger guarantees for propagation of
+--     'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' return values
+--
+-- -   A property to indicate whether @PointSize@ controls the final
+--     rasterization of polygons if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode>
+--     is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'
+--
+-- -   Two properties to indicate the non-strict line rasterization
+--     algorithm used
+--
+-- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+--
+-- -   Physical-device-level functions can now be called with any value in
+--     the valid range for a type beyond the defined enumerants, such that
+--     applications can avoid checking individual features, extensions, or
+--     versions before querying supported properties of a particular
+--     enumerant.
+--
+-- -   Clarification that copies between images of any type are allowed,
+--     treating 1D images as 2D images with a height of 1.
+--
+-- == New Commands
+--
+-- -   'cmdBindIndexBuffer2KHR'
+--
+-- -   'getDeviceImageSubresourceLayoutKHR'
+--
+-- -   'getImageSubresourceLayout2KHR'
+--
+-- -   'getRenderingAreaGranularityKHR'
+--
+-- == New Structures
+--
+-- -   'DeviceImageSubresourceInfoKHR'
+--
+-- -   'ImageSubresource2KHR'
+--
+-- -   'RenderingAreaInfoKHR'
+--
+-- -   'SubresourceLayout2KHR'
+--
+-- -   Extending 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
+--     'Vulkan.Core10.Buffer.BufferCreateInfo',
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT':
+--
+--     -   'BufferUsageFlags2CreateInfoKHR'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':
+--
+--     -   'PipelineCreateFlags2CreateInfoKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMaintenance5FeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMaintenance5PropertiesKHR'
+--
+-- == New Enums
+--
+-- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+--
+-- -   'PipelineCreateFlagBits2KHR'
+--
+-- == New Bitmasks
+--
+-- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR'
+--
+-- -   'PipelineCreateFlags2KHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_MAINTENANCE_5_EXTENSION_NAME'
+--
+-- -   'KHR_MAINTENANCE_5_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.Format.Format':
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--
+--     -   'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT'
+--
+--     -   'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_protected_access VK_EXT_pipeline_protected_access>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT'
+--
+--     -   'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- and
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- and
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties VK_KHR_pipeline_executable_properties>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_LIBRARY_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_video_decode_queue VK_KHR_video_decode_queue>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_video_encode_queue VK_KHR_video_encode_queue>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromap VK_NV_displacement_micromap>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'BUFFER_USAGE_2_RAY_TRACING_BIT_NV'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur VK_NV_ray_tracing_motion_blur>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group VK_KHR_device_group>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address VK_EXT_buffer_device_address>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control VK_EXT_pipeline_creation_cache_control>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2022-12-12 (Stu Smith)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR',
+-- 'PhysicalDeviceMaintenance5FeaturesKHR',
+-- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR',
+-- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR',
+-- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR',
+-- 'getRenderingAreaGranularityKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance5 Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_maintenance5  ( getRenderingAreaGranularityKHR
+                                              , cmdBindIndexBuffer2KHR
+                                              , getImageSubresourceLayout2KHR
+                                              , getDeviceImageSubresourceLayoutKHR
+                                              , pattern BUFFER_USAGE_2_RAY_TRACING_BIT_NV
+                                              , BufferUsageFlags2CreateInfoKHR(..)
+                                              , PipelineCreateFlags2CreateInfoKHR(..)
+                                              , PhysicalDeviceMaintenance5FeaturesKHR(..)
+                                              , PhysicalDeviceMaintenance5PropertiesKHR(..)
+                                              , RenderingAreaInfoKHR(..)
+                                              , ImageSubresource2KHR(..)
+                                              , SubresourceLayout2KHR(..)
+                                              , DeviceImageSubresourceInfoKHR(..)
+                                              , PipelineCreateFlags2KHR
+                                              , PipelineCreateFlagBits2KHR( PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
+                                                                          , PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV
+                                                                          , PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_LIBRARY_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT
+                                                                          , PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV
+                                                                          , PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR
+                                                                          , PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
+                                                                          , ..
+                                                                          )
+                                              , KHR_MAINTENANCE_5_SPEC_VERSION
+                                              , pattern KHR_MAINTENANCE_5_SPEC_VERSION
+                                              , KHR_MAINTENANCE_5_EXTENSION_NAME
+                                              , pattern KHR_MAINTENANCE_5_EXTENSION_NAME
+                                              , BufferUsageFlagBits2KHR(..)
+                                              , BufferUsageFlags2KHR
+                                              ) where
+
+import Data.Bits (Bits)
+import Data.Bits (FiniteBits)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Data.Typeable (eqT)
+import Foreign.Marshal.Alloc (allocaBytes)
+import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showString)
+import Numeric (showHex)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+import Control.Monad.IO.Class (MonadIO)
+import Data.String (IsString)
+import Data.Type.Equality ((:~:)(Refl))
+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 GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.CStruct.Extends (peekSomeCStruct)
+import Vulkan.CStruct.Extends (withSomeCStruct)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Handles (Buffer)
+import Vulkan.Core10.Handles (Buffer(..))
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlags2KHR)
+import Vulkan.CStruct.Extends (Chain)
+import Vulkan.Core10.Handles (CommandBuffer)
+import Vulkan.Core10.Handles (CommandBuffer(..))
+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
+import Vulkan.Core10.Handles (CommandBuffer_T)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindIndexBuffer2KHR))
+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageSubresourceLayoutKHR))
+import Vulkan.Dynamic (DeviceCmds(pVkGetImageSubresourceLayout2KHR))
+import Vulkan.Dynamic (DeviceCmds(pVkGetRenderingAreaGranularityKHR))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import Vulkan.Core10.FundamentalTypes (Extent2D)
+import Vulkan.Core10.FundamentalTypes (Flags64)
+import Vulkan.Core10.Enums.Format (Format)
+import Vulkan.Core10.Handles (Image)
+import Vulkan.Core10.Handles (Image(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT)
+import Vulkan.Core10.Image (ImageCreateInfo)
+import Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)
+import Vulkan.Core10.Enums.IndexType (IndexType)
+import Vulkan.Core10.Enums.IndexType (IndexType(..))
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.CStruct.Extends (SomeStruct(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (SubresourceHostMemcpySizeEXT)
+import Vulkan.Core10.Image (SubresourceLayout)
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlags2KHR)
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlagBits2KHR(BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR))
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlagBits2KHR(..))
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlags2KHR)
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetRenderingAreaGranularityKHR
+  :: FunPtr (Ptr Device_T -> Ptr RenderingAreaInfoKHR -> Ptr Extent2D -> IO ()) -> Ptr Device_T -> Ptr RenderingAreaInfoKHR -> Ptr Extent2D -> IO ()
+
+-- | vkGetRenderingAreaGranularityKHR - Returns the granularity for dynamic
+-- rendering optimal render area
+--
+-- = Description
+--
+-- The conditions leading to an optimal @renderArea@ are:
+--
+-- -   the @offset.x@ member in @renderArea@ is a multiple of the @width@
+--     member of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D'
+--     (the horizontal granularity).
+--
+-- -   the @offset.y@ member in @renderArea@ is a multiple of the @height@
+--     member of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D'
+--     (the vertical granularity).
+--
+-- -   either the @extent.width@ member in @renderArea@ is a multiple of
+--     the horizontal granularity or @offset.x@+@extent.width@ is equal to
+--     the @width@ of the @framebuffer@ in the
+--     'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo'.
+--
+-- -   either the @extent.height@ member in @renderArea@ is a multiple of
+--     the vertical granularity or @offset.y@+@extent.height@ is equal to
+--     the @height@ of the @framebuffer@ in the
+--     'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo'.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetRenderingAreaGranularityKHR-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameter#
+--     @pRenderingAreaInfo@ /must/ be a valid pointer to a valid
+--     'RenderingAreaInfoKHR' structure
+--
+-- -   #VUID-vkGetRenderingAreaGranularityKHR-pGranularity-parameter#
+--     @pGranularity@ /must/ be a valid pointer to a
+--     'Vulkan.Core10.FundamentalTypes.Extent2D' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Core10.FundamentalTypes.Extent2D', 'RenderingAreaInfoKHR'
+getRenderingAreaGranularityKHR :: forall io
+                                . (MonadIO io)
+                               => -- | @device@ is the logical device that owns the render pass instance.
+                                  Device
+                               -> -- | @pRenderingAreaInfo@ is a pointer to a 'RenderingAreaInfoKHR' structure
+                                  -- specifying details of the render pass instance to query the render area
+                                  -- granularity for.
+                                  RenderingAreaInfoKHR
+                               -> io (("granularity" ::: Extent2D))
+getRenderingAreaGranularityKHR device
+                                 renderingAreaInfo = liftIO . evalContT $ do
+  let vkGetRenderingAreaGranularityKHRPtr = pVkGetRenderingAreaGranularityKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetRenderingAreaGranularityKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRenderingAreaGranularityKHR is null" Nothing Nothing
+  let vkGetRenderingAreaGranularityKHR' = mkVkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHRPtr
+  pRenderingAreaInfo <- ContT $ withCStruct (renderingAreaInfo)
+  pPGranularity <- ContT (withZeroCStruct @Extent2D)
+  lift $ traceAroundEvent "vkGetRenderingAreaGranularityKHR" (vkGetRenderingAreaGranularityKHR'
+                                                                (deviceHandle (device))
+                                                                pRenderingAreaInfo
+                                                                (pPGranularity))
+  pGranularity <- lift $ peekCStruct @Extent2D pPGranularity
+  pure $ (pGranularity)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBindIndexBuffer2KHR
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> IndexType -> IO ()
+
+-- | vkCmdBindIndexBuffer2KHR - Bind an index buffer to a command buffer
+--
+-- = Description
+--
+-- @size@ specifies the bound size of the index buffer starting from
+-- @offset@. If @size@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then the
+-- bound size is from @offset@ to the end of the @buffer@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-offset-08782# @offset@ /must/ be less
+--     than the size of @buffer@
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-offset-08783# The sum of @offset@ and
+--     the base address of the range of
+--     'Vulkan.Core10.Handles.DeviceMemory' object that is backing
+--     @buffer@, /must/ be a multiple of the size of the type indicated by
+--     @indexType@
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-buffer-08784# @buffer@ /must/ have
+--     been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'
+--     flag
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-buffer-08785# If @buffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-indexType-08786# @indexType@ /must/
+--     not be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-indexType-08787# If @indexType@ is
+--     'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-size-08767# If @size@ is not
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple
+--     of the size of the type indicated by @indexType@
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-size-08768# If @size@ is not
+--     'Vulkan.Core10.APIConstants.WHOLE_SIZE', the sum of @offset@ and
+--     @size@ /must/ be less than or equal to the size of @buffer@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-buffer-parameter# @buffer@ /must/ be
+--     a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-indexType-parameter# @indexType@
+--     /must/ be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-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-vkCmdBindIndexBuffer2KHR-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-videocoding# This command /must/ only
+--     be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindIndexBuffer2KHR-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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.IndexType.IndexType'
+cmdBindIndexBuffer2KHR :: forall io
+                        . (MonadIO io)
+                       => -- | @commandBuffer@ is the command buffer into which the command is
+                          -- recorded.
+                          CommandBuffer
+                       -> -- | @buffer@ is the buffer being bound.
+                          Buffer
+                       -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index
+                          -- buffer address calculations.
+                          ("offset" ::: DeviceSize)
+                       -> -- | @size@ is the size in bytes of index data bound from @buffer@.
+                          DeviceSize
+                       -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value
+                          -- specifying the size of the indices.
+                          IndexType
+                       -> io ()
+cmdBindIndexBuffer2KHR commandBuffer buffer offset size indexType = liftIO $ do
+  let vkCmdBindIndexBuffer2KHRPtr = pVkCmdBindIndexBuffer2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdBindIndexBuffer2KHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer2KHR is null" Nothing Nothing
+  let vkCmdBindIndexBuffer2KHR' = mkVkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHRPtr
+  traceAroundEvent "vkCmdBindIndexBuffer2KHR" (vkCmdBindIndexBuffer2KHR'
+                                                 (commandBufferHandle (commandBuffer))
+                                                 (buffer)
+                                                 (offset)
+                                                 (size)
+                                                 (indexType))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetImageSubresourceLayout2KHR
+  :: FunPtr (Ptr Device_T -> Image -> Ptr ImageSubresource2KHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO ()) -> Ptr Device_T -> Image -> Ptr ImageSubresource2KHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO ()
+
+-- | vkGetImageSubresourceLayout2KHR - Retrieve information about an image
+-- subresource
+--
+-- = Description
+--
+-- 'getImageSubresourceLayout2KHR' behaves similarly to
+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', with the ability to
+-- specify extended inputs via chained input structures, and to return
+-- extended information via chained output structures.
+--
+-- It is legal to call 'getImageSubresourceLayout2KHR' with a @image@
+-- created with @tiling@ equal to
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', but the members
+-- of 'SubresourceLayout2KHR'::@subresourceLayout@ will have undefined
+-- values in this case.
+--
+-- Note
+--
+-- Structures chained from 'ImageSubresource2KHR'::@pNext@ will also be
+-- updated when @tiling@ is equal to
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-aspectMask-00997# The
+--     @aspectMask@ member of @pSubresource@ /must/ only have a single bit
+--     set
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716# The @mipLevel@
+--     member of @pSubresource@ /must/ be less than the @mipLevels@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was
+--     created
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717# The
+--     @arrayLayer@ member of @pSubresource@ /must/ be less than the
+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
+--     when @image@ was created
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-format-08886# If @format@ of
+--     the @image@ is a color format, @tiling@ of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not
+--     have a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     the @aspectMask@ member of @pSubresource@ /must/ be
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-format-04462# If @format@ of
+--     the @image@ has a depth component, the @aspectMask@ member of
+--     @pSubresource@ /must/ contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-format-04463# If @format@ of
+--     the @image@ has a stencil component, the @aspectMask@ member of
+--     @pSubresource@ /must/ contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-format-04464# If @format@ of
+--     the @image@ does not contain a stencil or depth component, the
+--     @aspectMask@ member of @pSubresource@ /must/ not contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-tiling-08717# If the @tiling@
+--     of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then the @aspectMask@ member of @pSubresource@ /must/ be a single
+--     valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-image-01895# If @image@ was
+--     created with the
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
+--     external memory handle type, then @image@ /must/ be bound to memory
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-tiling-02271# If the @tiling@
+--     of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
+--     then the @aspectMask@ member of @pSubresource@ /must/ be
+--     @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be
+--     less than the
+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@
+--     associated with the image’s @format@ and
+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-image-parameter# @image@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Image' handle
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-pSubresource-parameter#
+--     @pSubresource@ /must/ be a valid pointer to a valid
+--     'ImageSubresource2KHR' structure
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-pLayout-parameter# @pLayout@
+--     /must/ be a valid pointer to a 'SubresourceLayout2KHR' structure
+--
+-- -   #VUID-vkGetImageSubresourceLayout2KHR-image-parent# @image@ /must/
+--     have been created, allocated, or retrieved from @device@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Image',
+-- 'ImageSubresource2KHR', 'SubresourceLayout2KHR'
+getImageSubresourceLayout2KHR :: forall a io
+                               . ( Extendss SubresourceLayout2KHR a
+                                 , PokeChain a
+                                 , PeekChain a
+                                 , MonadIO io )
+                              => -- | @device@ is the logical device that owns the image.
+                                 Device
+                              -> -- | @image@ is the image whose layout is being queried.
+                                 Image
+                              -> -- | @pSubresource@ is a pointer to a 'ImageSubresource2KHR' structure
+                                 -- selecting a specific image for the image subresource.
+                                 ImageSubresource2KHR
+                              -> io (SubresourceLayout2KHR a)
+getImageSubresourceLayout2KHR device image subresource = liftIO . evalContT $ do
+  let vkGetImageSubresourceLayout2KHRPtr = pVkGetImageSubresourceLayout2KHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetImageSubresourceLayout2KHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageSubresourceLayout2KHR is null" Nothing Nothing
+  let vkGetImageSubresourceLayout2KHR' = mkVkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHRPtr
+  pSubresource <- ContT $ withCStruct (subresource)
+  pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2KHR _))
+  lift $ traceAroundEvent "vkGetImageSubresourceLayout2KHR" (vkGetImageSubresourceLayout2KHR'
+                                                               (deviceHandle (device))
+                                                               (image)
+                                                               pSubresource
+                                                               (forgetExtensions (pPLayout)))
+  pLayout <- lift $ peekCStruct @(SubresourceLayout2KHR _) pPLayout
+  pure $ (pLayout)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetDeviceImageSubresourceLayoutKHR
+  :: FunPtr (Ptr Device_T -> Ptr DeviceImageSubresourceInfoKHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO ()) -> Ptr Device_T -> Ptr DeviceImageSubresourceInfoKHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO ()
+
+-- | vkGetDeviceImageSubresourceLayoutKHR - Retrieve information about an
+-- image subresource without an image object
+--
+-- = Description
+--
+-- 'getDeviceImageSubresourceLayoutKHR' behaves similarly to
+-- 'getImageSubresourceLayout2KHR', but uses a
+-- 'Vulkan.Core10.Image.ImageCreateInfo' structure to specify the image
+-- rather than a 'Vulkan.Core10.Handles.Image' object.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Handles.Device', 'DeviceImageSubresourceInfoKHR',
+-- 'SubresourceLayout2KHR'
+getDeviceImageSubresourceLayoutKHR :: forall a io
+                                    . ( Extendss SubresourceLayout2KHR a
+                                      , PokeChain a
+                                      , PeekChain a
+                                      , MonadIO io )
+                                   => -- | @device@ is the logical device that owns the image.
+                                      --
+                                      -- #VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter# @device@
+                                      -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+                                      Device
+                                   -> -- | @pInfo@ is a pointer to a 'DeviceImageSubresourceInfoKHR' structure
+                                      -- containing parameters required for the subresource layout query.
+                                      --
+                                      -- #VUID-vkGetDeviceImageSubresourceLayoutKHR-pInfo-parameter# @pInfo@
+                                      -- /must/ be a valid pointer to a valid 'DeviceImageSubresourceInfoKHR'
+                                      -- structure
+                                      DeviceImageSubresourceInfoKHR
+                                   -> io (SubresourceLayout2KHR a)
+getDeviceImageSubresourceLayoutKHR device info = liftIO . evalContT $ do
+  let vkGetDeviceImageSubresourceLayoutKHRPtr = pVkGetDeviceImageSubresourceLayoutKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetDeviceImageSubresourceLayoutKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageSubresourceLayoutKHR is null" Nothing Nothing
+  let vkGetDeviceImageSubresourceLayoutKHR' = mkVkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHRPtr
+  pInfo <- ContT $ withCStruct (info)
+  pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2KHR _))
+  lift $ traceAroundEvent "vkGetDeviceImageSubresourceLayoutKHR" (vkGetDeviceImageSubresourceLayoutKHR'
+                                                                    (deviceHandle (device))
+                                                                    pInfo
+                                                                    (forgetExtensions (pPLayout)))
+  pLayout <- lift $ peekCStruct @(SubresourceLayout2KHR _) pPLayout
+  pure $ (pLayout)
+
+
+-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV"
+pattern BUFFER_USAGE_2_RAY_TRACING_BIT_NV = BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
+
+
+-- | VkBufferUsageFlags2CreateInfoKHR - Extended buffer usage flags
+--
+-- = Description
+--
+-- If this structure is included in the @pNext@ chain of a buffer creation
+-- structure, @usage@ is used instead of the corresponding @usage@ value
+-- passed in that creation structure, allowing additional usage flags to be
+-- specified. If this structure is included in the @pNext@ chain of a
+-- buffer query structure, the usage flags of the buffer are returned in
+-- @usage@ of this structure, and the usage flags representable in @usage@
+-- of the buffer query structure are also returned in that field.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data BufferUsageFlags2CreateInfoKHR = BufferUsageFlags2CreateInfoKHR
+  { -- | @usage@ is a bitmask of
+    -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+    -- specifying allowed usages of the buffer.
+    --
+    -- #VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameter# @usage@ /must/
+    -- be a valid combination of
+    -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+    -- values
+    --
+    -- #VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmask# @usage@
+    -- /must/ not be @0@
+    usage :: BufferUsageFlags2KHR }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BufferUsageFlags2CreateInfoKHR)
+#endif
+deriving instance Show BufferUsageFlags2CreateInfoKHR
+
+instance ToCStruct BufferUsageFlags2CreateInfoKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BufferUsageFlags2CreateInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr BufferUsageFlags2KHR)) (usage)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr BufferUsageFlags2KHR)) (zero)
+    f
+
+instance FromCStruct BufferUsageFlags2CreateInfoKHR where
+  peekCStruct p = do
+    usage <- peek @BufferUsageFlags2KHR ((p `plusPtr` 16 :: Ptr BufferUsageFlags2KHR))
+    pure $ BufferUsageFlags2CreateInfoKHR
+             usage
+
+instance Storable BufferUsageFlags2CreateInfoKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BufferUsageFlags2CreateInfoKHR where
+  zero = BufferUsageFlags2CreateInfoKHR
+           zero
+
+
+-- | VkPipelineCreateFlags2CreateInfoKHR - Extended pipeline create flags
+--
+-- = Description
+--
+-- If this structure is included in the @pNext@ chain of a pipeline
+-- creation structure, @flags@ is used instead of the corresponding @flags@
+-- value passed in that creation structure, allowing additional creation
+-- flags to be specified.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'PipelineCreateFlags2KHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PipelineCreateFlags2CreateInfoKHR = PipelineCreateFlags2CreateInfoKHR
+  { -- | @flags@ is a bitmask of 'PipelineCreateFlagBits2KHR' specifying how a
+    -- pipeline will be generated.
+    --
+    -- #VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameter# @flags@
+    -- /must/ be a valid combination of 'PipelineCreateFlagBits2KHR' values
+    --
+    -- #VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmask# @flags@
+    -- /must/ not be @0@
+    flags :: PipelineCreateFlags2KHR }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineCreateFlags2CreateInfoKHR)
+#endif
+deriving instance Show PipelineCreateFlags2CreateInfoKHR
+
+instance ToCStruct PipelineCreateFlags2CreateInfoKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineCreateFlags2CreateInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags2KHR)) (flags)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags2KHR)) (zero)
+    f
+
+instance FromCStruct PipelineCreateFlags2CreateInfoKHR where
+  peekCStruct p = do
+    flags <- peek @PipelineCreateFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineCreateFlags2KHR))
+    pure $ PipelineCreateFlags2CreateInfoKHR
+             flags
+
+instance Storable PipelineCreateFlags2CreateInfoKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineCreateFlags2CreateInfoKHR where
+  zero = PipelineCreateFlags2CreateInfoKHR
+           zero
+
+
+-- | VkPhysicalDeviceMaintenance5FeaturesKHR - Structure describing whether
+-- the implementation supports maintenance5 functionality
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMaintenance5FeaturesKHR' 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. 'PhysicalDeviceMaintenance5FeaturesKHR' /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_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5FeaturesKHR
+  { -- | #features-maintenance5# @maintenance5@ indicates that the implementation
+    -- supports the following:
+    --
+    -- -   The ability to expose support for the optional format
+    --     'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR'.
+    --
+    -- -   The ability to expose support for the optional format
+    --     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR'.
+    --
+    -- -   A property to indicate that multisample coverage operations are
+    --     performed after sample counting in EarlyFragmentTests mode.
+    --
+    -- -   Creating a 'Vulkan.Core10.Handles.BufferView' with a subset of the
+    --     associated 'Vulkan.Core10.Handles.Buffer' usage using
+    --     'BufferUsageFlags2CreateInfoKHR'.
+    --
+    -- -   A new function 'cmdBindIndexBuffer2KHR', allowing a range of memory
+    --     to be bound as an index buffer.
+    --
+    -- -   'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' will return
+    --     @NULL@ for function pointers of core functions for versions higher
+    --     than the version requested by the application.
+    --
+    -- -   'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+    --     supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the
+    --     @pSizes@ parameter.
+    --
+    -- -   If @PointSize@ is not written, a default value of @1.0@ is used for
+    --     the size of points.
+    --
+    -- -   'Vulkan.Core10.Shader.ShaderModuleCreateInfo' /can/ be added as a
+    --     chained structure to pipeline creation via
+    --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', rather than
+    --     having to create a shader module.
+    --
+    -- -   A function 'getRenderingAreaGranularityKHR' to query the optimal
+    --     render area for a dynamic rendering instance.
+    --
+    -- -   A property to indicate that depth\/stencil texturing operations with
+    --     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have
+    --     defined behavior.
+    --
+    -- -   'getDeviceImageSubresourceLayoutKHR' allows an application to
+    --     perform a 'Vulkan.Core10.Image.getImageSubresourceLayout' query
+    --     without having to create an image.
+    --
+    -- -   'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the
+    --     @layerCount@ member of
+    --     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'.
+    --
+    -- -   A property to indicate whether @PointSize@ controls the final
+    --     rasterization of polygons if
+    --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode>
+    --     is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'.
+    --
+    -- -   Two properties to indicate the non-strict line rasterization
+    --     algorithm used.
+    --
+    -- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
+    --     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'.
+    --
+    -- -   Physical-device-level functions /can/ now be called with any value
+    --     in the valid range for a type beyond the defined enumerants, such
+    --     that applications can avoid checking individual features,
+    --     extensions, or versions before querying supported properties of a
+    --     particular enumerant.
+    --
+    -- -   Copies between images of any type are allowed, with 1D images
+    --     treated as 2D images with a height of @1@.
+    maintenance5 :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMaintenance5FeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceMaintenance5FeaturesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance5FeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMaintenance5FeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance5))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceMaintenance5FeaturesKHR where
+  peekCStruct p = do
+    maintenance5 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceMaintenance5FeaturesKHR
+             (bool32ToBool maintenance5)
+
+instance Storable PhysicalDeviceMaintenance5FeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMaintenance5FeaturesKHR where
+  zero = PhysicalDeviceMaintenance5FeaturesKHR
+           zero
+
+
+-- | VkPhysicalDeviceMaintenance5PropertiesKHR - Structure describing various
+-- implementation-defined properties introduced with VK_KHR_maintenance5
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceMaintenance5PropertiesKHR' 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_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5PropertiesKHR
+  { -- | @earlyFragmentMultisampleCoverageAfterSampleCounting@ is a boolean value
+    -- indicating whether the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader fragment shading>
+    -- and
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg multisample coverage>
+    -- operations are performed after
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplecount sample counting>
+    -- for
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader fragment shaders>
+    -- with @EarlyFragmentTests@ execution mode.
+    earlyFragmentMultisampleCoverageAfterSampleCounting :: Bool
+  , -- | @earlyFragmentSampleMaskTestBeforeSampleCounting@ is a boolean value
+    -- indicating whether the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemask sample mask test>
+    -- operation is performed before
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplecount sample counting>
+    -- for
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader fragment shaders>
+    -- using the @EarlyFragmentTests@ execution mode.
+    earlyFragmentSampleMaskTestBeforeSampleCounting :: Bool
+  , -- | @depthStencilSwizzleOneSupport@ is a boolean indicating that
+    -- depth\/stencil texturing operations with
+    -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have
+    -- defined behavior.
+    depthStencilSwizzleOneSupport :: Bool
+  , -- | @polygonModePointSize@ is a boolean value indicating whether the point
+    -- size of the final rasterization of polygons with
+    -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' is controlled by
+    -- @PointSize@.
+    polygonModePointSize :: Bool
+  , -- | @nonStrictSinglePixelWideLinesUseParallelogram@ is a boolean value
+    -- indicating whether non-strict lines with a width of 1.0 are rasterized
+    -- as parallelograms or using Bresenham’s algorithm.
+    nonStrictSinglePixelWideLinesUseParallelogram :: Bool
+  , -- | @nonStrictWideLinesUseParallelogram@ is a boolean value indicating
+    -- whether non-strict lines with a width greater than 1.0 are rasterized as
+    -- parallelograms or using Bresenham’s algorithm.
+    nonStrictWideLinesUseParallelogram :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceMaintenance5PropertiesKHR)
+#endif
+deriving instance Show PhysicalDeviceMaintenance5PropertiesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance5PropertiesKHR where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceMaintenance5PropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (earlyFragmentMultisampleCoverageAfterSampleCounting))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (earlyFragmentSampleMaskTestBeforeSampleCounting))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (depthStencilSwizzleOneSupport))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (polygonModePointSize))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (nonStrictSinglePixelWideLinesUseParallelogram))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (nonStrictWideLinesUseParallelogram))
+    f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceMaintenance5PropertiesKHR where
+  peekCStruct p = do
+    earlyFragmentMultisampleCoverageAfterSampleCounting <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    earlyFragmentSampleMaskTestBeforeSampleCounting <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    depthStencilSwizzleOneSupport <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    polygonModePointSize <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    nonStrictSinglePixelWideLinesUseParallelogram <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    nonStrictWideLinesUseParallelogram <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
+    pure $ PhysicalDeviceMaintenance5PropertiesKHR
+             (bool32ToBool earlyFragmentMultisampleCoverageAfterSampleCounting)
+             (bool32ToBool earlyFragmentSampleMaskTestBeforeSampleCounting)
+             (bool32ToBool depthStencilSwizzleOneSupport)
+             (bool32ToBool polygonModePointSize)
+             (bool32ToBool nonStrictSinglePixelWideLinesUseParallelogram)
+             (bool32ToBool nonStrictWideLinesUseParallelogram)
+
+instance Storable PhysicalDeviceMaintenance5PropertiesKHR where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceMaintenance5PropertiesKHR where
+  zero = PhysicalDeviceMaintenance5PropertiesKHR
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkRenderingAreaInfoKHR - Structure describing rendering area granularity
+-- query info
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Enums.Format.Format',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getRenderingAreaGranularityKHR'
+data RenderingAreaInfoKHR = RenderingAreaInfoKHR
+  { -- | @viewMask@ is the viewMask used for rendering.
+    viewMask :: Word32
+  , -- | @pColorAttachmentFormats@ is a pointer to an array of
+    -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color
+    -- attachments used in the render pass instance.
+    colorAttachmentFormats :: Vector Format
+  , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value
+    -- defining the format of the depth attachment used in the render pass
+    -- instance.
+    depthAttachmentFormat :: Format
+  , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value
+    -- defining the format of the stencil attachment used in the render pass
+    -- instance.
+    stencilAttachmentFormat :: Format
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderingAreaInfoKHR)
+#endif
+deriving instance Show RenderingAreaInfoKHR
+
+instance ToCStruct RenderingAreaInfoKHR where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderingAreaInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (viewMask)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))
+    pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')
+    lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (depthAttachmentFormat)
+    lift $ poke ((p `plusPtr` 36 :: Ptr Format)) (stencilAttachmentFormat)
+    lift $ f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Format)) (zero)
+    poke ((p `plusPtr` 36 :: Ptr Format)) (zero)
+    f
+
+instance FromCStruct RenderingAreaInfoKHR where
+  peekCStruct p = do
+    viewMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    colorAttachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 24 :: Ptr (Ptr Format)))
+    pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))
+    depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))
+    stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format))
+    pure $ RenderingAreaInfoKHR
+             viewMask
+             pColorAttachmentFormats'
+             depthAttachmentFormat
+             stencilAttachmentFormat
+
+instance Zero RenderingAreaInfoKHR where
+  zero = RenderingAreaInfoKHR
+           zero
+           mempty
+           zero
+           zero
+
+
+-- | VkImageSubresource2KHR - Structure specifying an image subresource
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'DeviceImageSubresourceInfoKHR',
+-- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT',
+-- 'getImageSubresourceLayout2KHR'
+data ImageSubresource2KHR = ImageSubresource2KHR
+  { -- | @imageSubresource@ is a
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'
+    -- structure.
+    --
+    -- #VUID-VkImageSubresource2KHR-imageSubresource-parameter#
+    -- @imageSubresource@ /must/ be a valid
+    -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'
+    -- structure
+    imageSubresource :: ImageSubresource }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImageSubresource2KHR)
+#endif
+deriving instance Show ImageSubresource2KHR
+
+instance ToCStruct ImageSubresource2KHR where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImageSubresource2KHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (imageSubresource)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (zero)
+    f
+
+instance FromCStruct ImageSubresource2KHR where
+  peekCStruct p = do
+    imageSubresource <- peekCStruct @ImageSubresource ((p `plusPtr` 16 :: Ptr ImageSubresource))
+    pure $ ImageSubresource2KHR
+             imageSubresource
+
+instance Storable ImageSubresource2KHR where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImageSubresource2KHR where
+  zero = ImageSubresource2KHR
+           zero
+
+
+-- | VkSubresourceLayout2KHR - Structure specifying subresource layout
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkSubresourceLayout2KHR-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR'
+--
+-- -   #VUID-VkSubresourceLayout2KHR-pNext-pNext# Each @pNext@ member of
+--     any structure (including this one) in the @pNext@ chain /must/ be
+--     either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT'
+--     or
+--     'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT'
+--
+-- -   #VUID-VkSubresourceLayout2KHR-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copy VK_EXT_host_image_copy>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'Vulkan.Core10.Image.SubresourceLayout',
+-- 'getDeviceImageSubresourceLayoutKHR',
+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT',
+-- 'getImageSubresourceLayout2KHR'
+data SubresourceLayout2KHR (es :: [Type]) = SubresourceLayout2KHR
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @subresourceLayout@ is a 'Vulkan.Core10.Image.SubresourceLayout'
+    -- structure.
+    subresourceLayout :: SubresourceLayout
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SubresourceLayout2KHR (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (SubresourceLayout2KHR es)
+
+instance Extensible SubresourceLayout2KHR where
+  extensibleTypeName = "SubresourceLayout2KHR"
+  setNext SubresourceLayout2KHR{..} next' = SubresourceLayout2KHR{next = next', ..}
+  getNext SubresourceLayout2KHR{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubresourceLayout2KHR e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f
+    | Just Refl <- eqT @e @SubresourceHostMemcpySizeEXT = Just f
+    | otherwise = Nothing
+
+instance ( Extendss SubresourceLayout2KHR es
+         , PokeChain es ) => ToCStruct (SubresourceLayout2KHR es) where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SubresourceLayout2KHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (subresourceLayout)
+    lift $ f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (zero)
+    lift $ f
+
+instance ( Extendss SubresourceLayout2KHR es
+         , PeekChain es ) => FromCStruct (SubresourceLayout2KHR es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    subresourceLayout <- peekCStruct @SubresourceLayout ((p `plusPtr` 16 :: Ptr SubresourceLayout))
+    pure $ SubresourceLayout2KHR
+             next subresourceLayout
+
+instance es ~ '[] => Zero (SubresourceLayout2KHR es) where
+  zero = SubresourceLayout2KHR
+           ()
+           zero
+
+
+-- | VkDeviceImageSubresourceInfoKHR - Image creation information for
+-- querying subresource layout
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997# The
+--     @aspectMask@ member of @pSubresource@ /must/ only have a single bit
+--     set
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716# The @mipLevel@
+--     member of @pSubresource@ /must/ be less than the @mipLevels@
+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was
+--     created
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717# The
+--     @arrayLayer@ member of @pSubresource@ /must/ be less than the
+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
+--     when @image@ was created
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-08886# If @format@ of
+--     the @image@ is a color format, @tiling@ of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not
+--     have a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     the @aspectMask@ member of @pSubresource@ /must/ be
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-04462# If @format@ of
+--     the @image@ has a depth component, the @aspectMask@ member of
+--     @pSubresource@ /must/ contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-04463# If @format@ of
+--     the @image@ has a stencil component, the @aspectMask@ member of
+--     @pSubresource@ /must/ contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-04464# If @format@ of
+--     the @image@ does not contain a stencil or depth component, the
+--     @aspectMask@ member of @pSubresource@ /must/ not contain
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or
+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717# If the @tiling@
+--     of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and has a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+--     then the @aspectMask@ member of @pSubresource@ /must/ be a single
+--     valid
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>
+--     bit
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-image-01895# If @image@ was
+--     created with the
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'
+--     external memory handle type, then @image@ /must/ be bound to memory
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271# If the @tiling@
+--     of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',
+--     then the @aspectMask@ member of @pSubresource@ /must/ be
+--     @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be
+--     less than the
+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@
+--     associated with the image’s @format@ and
+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR'
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameter#
+--     @pCreateInfo@ /must/ be a valid pointer to a valid
+--     'Vulkan.Core10.Image.ImageCreateInfo' structure
+--
+-- -   #VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameter#
+--     @pSubresource@ /must/ be a valid pointer to a valid
+--     'ImageSubresource2KHR' structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
+-- 'Vulkan.Core10.Image.ImageCreateInfo', 'ImageSubresource2KHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getDeviceImageSubresourceLayoutKHR'
+data DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfoKHR
+  { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Image.ImageCreateInfo'
+    -- structure containing parameters affecting creation of the image to
+    -- query.
+    createInfo :: SomeStruct ImageCreateInfo
+  , -- | @pSubresource@ pSubresource is a pointer to a 'ImageSubresource2KHR'
+    -- structure selecting a specific image subresource for the query.
+    subresource :: ImageSubresource2KHR
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (DeviceImageSubresourceInfoKHR)
+#endif
+deriving instance Show DeviceImageSubresourceInfoKHR
+
+instance ToCStruct DeviceImageSubresourceInfoKHR where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p DeviceImageSubresourceInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo (createInfo) (cont . castPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''
+    pSubresource'' <- ContT $ withCStruct (subresource)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ImageSubresource2KHR))) pSubresource''
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo ((SomeStruct zero)) (cont . castPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''
+    pSubresource'' <- ContT $ withCStruct (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ImageSubresource2KHR))) pSubresource''
+    lift $ f
+
+instance FromCStruct DeviceImageSubresourceInfoKHR where
+  peekCStruct p = do
+    pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _))))
+    pSubresource <- peekCStruct @ImageSubresource2KHR =<< peek ((p `plusPtr` 24 :: Ptr (Ptr ImageSubresource2KHR)))
+    pure $ DeviceImageSubresourceInfoKHR
+             pCreateInfo pSubresource
+
+instance Zero DeviceImageSubresourceInfoKHR where
+  zero = DeviceImageSubresourceInfoKHR
+           (SomeStruct zero)
+           zero
+
+
+type PipelineCreateFlags2KHR = PipelineCreateFlagBits2KHR
+
+-- | VkPipelineCreateFlagBits2KHR - Bitmask controlling how a pipeline is
+-- created
+--
+-- = Description
+--
+-- -   'PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR' specifies that the
+--     created pipeline will not be optimized. Using this flag /may/ reduce
+--     the time taken to create the pipeline.
+--
+-- -   'PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR' specifies that the
+--     pipeline to be created is allowed to be the parent of a pipeline
+--     that will be created in a subsequent pipeline creation call.
+--
+-- -   'PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR' specifies that the pipeline
+--     to be created will be a child of a previously created parent
+--     pipeline.
+--
+-- -   'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR' specifies
+--     that any shader input variables decorated as @ViewIndex@ will be
+--     assigned values as if they were decorated as @DeviceIndex@.
+--
+-- -   'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR' specifies that a compute
+--     pipeline /can/ be used with
+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase'
+--     with a non-zero base workgroup.
+--
+-- -   'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV' specifies that a pipeline
+--     is created with all shaders in the deferred state. Before using the
+--     pipeline the application /must/ call
+--     'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV' exactly once
+--     on each shader in the pipeline before using the pipeline.
+--
+-- -   'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR' specifies that the
+--     shader compiler should capture statistics for the pipeline
+--     executables produced by the compile process which /can/ later be
+--     retrieved by calling
+--     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR'.
+--     Enabling this flag /must/ not affect the final compiled pipeline but
+--     /may/ disable pipeline caching or otherwise affect pipeline creation
+--     time.
+--
+-- -   'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
+--     specifies that the shader compiler should capture the internal
+--     representations of pipeline executables produced by the compile
+--     process which /can/ later be retrieved by calling
+--     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR'.
+--     Enabling this flag /must/ not affect the final compiled pipeline but
+--     /may/ disable pipeline caching or otherwise affect pipeline creation
+--     time. When capturing IR from pipelines created with pipeline
+--     libraries, there is no guarantee that IR from libraries /can/ be
+--     retrieved from the linked pipeline. Applications /should/ retrieve
+--     IR from each library, and any linked pipelines, separately.
+--
+-- -   'PIPELINE_CREATE_2_LIBRARY_BIT_KHR' specifies that the pipeline
+--     /cannot/ be used directly, and instead defines a /pipeline library/
+--     that /can/ be combined with other pipelines using the
+--     'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'
+--     structure. This is available in ray tracing and graphics pipelines.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
+--     specifies that an any-hit shader will always be present when an
+--     any-hit shader would be executed. A NULL any-hit shader is an
+--     any-hit shader which is effectively
+--     'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such as from a
+--     shader group consisting entirely of zeros.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
+--     specifies that a closest hit shader will always be present when a
+--     closest hit shader would be executed. A NULL closest hit shader is a
+--     closest hit shader which is effectively
+--     'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such as from a
+--     shader group consisting entirely of zeros.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
+--     specifies that a miss shader will always be present when a miss
+--     shader would be executed. A NULL miss shader is a miss shader which
+--     is effectively 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such
+--     as from a shader group consisting entirely of zeros.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
+--     specifies that an intersection shader will always be present when an
+--     intersection shader would be executed. A NULL intersection shader is
+--     an intersection shader which is effectively
+--     'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such as from a
+--     shader group consisting entirely of zeros.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies
+--     that triangle primitives will be skipped during traversal using
+--     @OpTraceRayKHR@.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that
+--     AABB primitives will be skipped during traversal using
+--     @OpTraceRayKHR@.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
+--     specifies that the shader group handles /can/ be saved and reused on
+--     a subsequent run (e.g. for trace capture and replay).
+--
+-- -   'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV' specifies that the
+--     pipeline can be used in combination with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>.
+--
+-- -   'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR'
+--     specifies that pipeline creation will fail if a compile is required
+--     for creation of a valid 'Vulkan.Core10.Handles.Pipeline' object;
+--     'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' will be
+--     returned by pipeline creation, and the
+--     'Vulkan.Core10.Handles.Pipeline' will be set to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
+-- -   When creating multiple pipelines,
+--     'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR' specifies that
+--     control will be returned to the application if any individual
+--     pipeline returns a result which is not
+--     'Vulkan.Core10.Enums.Result.SUCCESS' rather than continuing to
+--     create additional pipelines.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV' specifies that
+--     the pipeline is allowed to use @OpTraceRayMotionNV@.
+--
+-- -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--     specifies that the pipeline will be used with a fragment shading
+--     rate attachment.
+--
+-- -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--     specifies that the pipeline will be used with a fragment density map
+--     attachment.
+--
+-- -   'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' specifies that
+--     pipeline libraries being linked into this library /should/ have link
+--     time optimizations applied. If this bit is omitted, implementations
+--     /should/ instead perform linking as rapidly as possible.
+--
+-- -   'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
+--     specifies that pipeline libraries should retain any information
+--     necessary to later perform an optimal link with
+--     'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT'.
+--
+-- -   'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT' specifies that a
+--     pipeline will be used with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorbuffers descriptor buffers>,
+--     rather than
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets descriptor sets>.
+--
+-- -   'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies
+--     that the pipeline /may/ be used with an attachment feedback loop
+--     including color attachments.
+--
+-- -   'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--     specifies that the pipeline /may/ be used with an attachment
+--     feedback loop including depth-stencil attachments.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' specifies
+--     that the pipeline /can/ be used with acceleration structures which
+--     reference an opacity micromap array.
+--
+-- -   'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
+--     specifies that the pipeline /can/ be used with aceleration
+--     structures which reference a displacement micromap array.
+--
+-- -   'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT' specifies that the
+--     pipeline /must/ not be bound to a protected command buffer.
+--
+-- -   'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT' specifies that the
+--     pipeline /must/ not be bound to an unprotected command buffer.
+--
+-- It is valid to set both 'PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR'
+-- and 'PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR'. This allows a pipeline to be
+-- both a parent and possibly a child in a pipeline hierarchy. See
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>
+-- for more information.
+--
+-- When an implementation is looking up a pipeline in a
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>,
+-- if that pipeline is being created using linked libraries,
+-- implementations /should/ always return an equivalent pipeline created
+-- with 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' if available,
+-- whether or not that bit was specified.
+--
+-- Note
+--
+-- Using 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' (or not) when
+-- linking pipeline libraries is intended as a performance tradeoff between
+-- host and device. If the bit is omitted, linking should be faster and
+-- produce a pipeline more rapidly, but performance of the pipeline on the
+-- target device may be reduced. If the bit is included, linking may be
+-- slower but should produce a pipeline with device performance comparable
+-- to a monolithically created pipeline. Using both options can allow
+-- latency-sensitive applications to generate a suboptimal but usable
+-- pipeline quickly, and then perform an optimal link in the background,
+-- substituting the result for the suboptimally linked pipeline as soon as
+-- it is available.
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>
+newtype PipelineCreateFlagBits2KHR = PipelineCreateFlagBits2KHR Flags64
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR"
+pattern PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000001
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR"
+pattern PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000002
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR"
+pattern PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000004
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT"
+pattern PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000020000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"
+pattern PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000010000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT"
+pattern PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000040000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT"
+pattern PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000008000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"
+pattern PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000004000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"
+pattern PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000002000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"
+pattern PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000001000000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
+pattern PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000000400000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
+pattern PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000200000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV"
+pattern PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000000100000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV"
+pattern PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000000040000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000080000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000020000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000010000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000008000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000004000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000002000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"
+pattern PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000001000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR"
+pattern PIPELINE_CREATE_2_LIBRARY_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000800
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"
+pattern PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000000800000
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT"
+pattern PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000000000400
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR"
+pattern PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000200
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR"
+pattern PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000100
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"
+pattern PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000080
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR"
+pattern PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000040
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV"
+pattern PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000000000020
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR"
+pattern PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000010
+
+-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"
+pattern PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000008
+
+conNamePipelineCreateFlagBits2KHR :: String
+conNamePipelineCreateFlagBits2KHR = "PipelineCreateFlagBits2KHR"
+
+enumPrefixPipelineCreateFlagBits2KHR :: String
+enumPrefixPipelineCreateFlagBits2KHR = "PIPELINE_CREATE_2_"
+
+showTablePipelineCreateFlagBits2KHR :: [(PipelineCreateFlagBits2KHR, String)]
+showTablePipelineCreateFlagBits2KHR =
+  [
+    ( PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR
+    , "DISABLE_OPTIMIZATION_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR
+    , "ALLOW_DERIVATIVES_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR
+    , "DERIVATIVE_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT
+    , "DESCRIPTOR_BUFFER_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
+    , "RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"
+    )
+  ,
+    ( PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT
+    , "PROTECTED_ACCESS_ONLY_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT
+    , "NO_PROTECTED_ACCESS_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
+    , "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
+    , "COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
+    , "RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
+    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV
+    , "RAY_TRACING_ALLOW_MOTION_BIT_NV"
+    )
+  ,
+    ( PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV
+    , "INDIRECT_BINDABLE_BIT_NV"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
+    , "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
+    , "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
+    , "RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
+    , "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
+    , "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR
+    , "RAY_TRACING_SKIP_AABBS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
+    , "RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_LIBRARY_BIT_KHR
+    , "LIBRARY_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
+    , "RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT
+    , "LINK_TIME_OPTIMIZATION_BIT_EXT"
+    )
+  ,
+    ( PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR
+    , "EARLY_RETURN_ON_FAILURE_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR
+    , "FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
+    , "CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR
+    , "CAPTURE_STATISTICS_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV
+    , "DEFER_COMPILE_BIT_NV"
+    )
+  ,
+    ( PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR
+    , "DISPATCH_BASE_BIT_KHR"
+    )
+  ,
+    ( PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
+    , "VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"
+    )
+  ]
+
+instance Show PipelineCreateFlagBits2KHR where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixPipelineCreateFlagBits2KHR
+      showTablePipelineCreateFlagBits2KHR
+      conNamePipelineCreateFlagBits2KHR
+      (\(PipelineCreateFlagBits2KHR x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read PipelineCreateFlagBits2KHR where
+  readPrec =
+    enumReadPrec
+      enumPrefixPipelineCreateFlagBits2KHR
+      showTablePipelineCreateFlagBits2KHR
+      conNamePipelineCreateFlagBits2KHR
+      PipelineCreateFlagBits2KHR
+
+type KHR_MAINTENANCE_5_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_5_SPEC_VERSION"
+pattern KHR_MAINTENANCE_5_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_MAINTENANCE_5_SPEC_VERSION = 1
+
+
+type KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5"
+
+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_5_EXTENSION_NAME"
+pattern KHR_MAINTENANCE_5_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot
@@ -0,0 +1,592 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_maintenance5 - device extension
+--
+-- == VK_KHR_maintenance5
+--
+-- [__Name String__]
+--     @VK_KHR_maintenance5@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     471
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+--
+-- [__Contact__]
+--
+--     -   Stu Smith
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance5] @stu-s%0A*Here describe the issue or question you have about the VK_KHR_maintenance5 extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_maintenance5.adoc VK_KHR_maintenance5>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-02
+--
+-- [__Interactions and External Dependencies__; __Contributors__]
+--
+--     -   Stu Smith, AMD
+--
+--     -   Tobias Hector, AMD
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Slawomir Cygan, Intel
+--
+--     -   Lionel Landwerlin, Intel
+--
+--     -   James Fitzpatrick, Imagination Technologies
+--
+--     -   Andrew Garrard, Imagination Technologies
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Pan Gao, Huawei
+--
+--     -   Jan-Harald Fredriksen, ARM
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Mike Blumenkrantz, Valve
+--
+-- == Description
+--
+-- @VK_KHR_maintenance5@ adds a collection of minor features, none of which
+-- would warrant an entire extension of their own.
+--
+-- The new features are as follows:
+--
+-- -   A new 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR'
+--     format
+--
+-- -   A new 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' format
+--
+-- -   A property to indicate that multisample coverage operations are
+--     performed after sample counting in EarlyFragmentTests mode
+--
+-- -   Relax VkBufferView creation requirements by allowing subsets of the
+--     associated VkBuffer usage using 'BufferUsageFlags2CreateInfoKHR'
+--
+-- -   A new entry point 'cmdBindIndexBuffer2KHR', allowing a range of
+--     memory to be bound as an index buffer
+--
+-- -   'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' must return
+--     @NULL@ for supported core functions beyond the version requested by
+--     the application.
+--
+-- -   A property to indicate that the sample mask test is performed after
+--     sample counting in EarlyFragmentTests mode
+--
+-- -   'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'
+--     now supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the
+--     @pSizes@ parameter.
+--
+-- -   A default size of 1.0 is used if @PointSize@ is not written
+--
+-- -   Shader modules are deprecated - applications can now pass
+--     'Vulkan.Core10.Shader.ShaderModuleCreateInfo' as a chained struct to
+--     pipeline creation via
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'
+--
+-- -   A function 'getRenderingAreaGranularityKHR' to query the optimal
+--     render area for a dynamic rendering instance.
+--
+-- -   A property to indicate that depth\/stencil texturing operations with
+--     'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have
+--     defined behavior
+--
+-- -   Add 'getImageSubresourceLayout2KHR' and a new function
+--     'getDeviceImageSubresourceLayoutKHR' to allow the application to
+--     query the image memory layout without having to create an image
+--     object and query it.
+--
+-- -   Allow 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the
+--     @layerCount@ member of
+--     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'
+--
+-- -   Adds stronger guarantees for propagation of
+--     'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' return values
+--
+-- -   A property to indicate whether @PointSize@ controls the final
+--     rasterization of polygons if
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode>
+--     is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'
+--
+-- -   Two properties to indicate the non-strict line rasterization
+--     algorithm used
+--
+-- -   Two new flags words 'PipelineCreateFlagBits2KHR' and
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+--
+-- -   Physical-device-level functions can now be called with any value in
+--     the valid range for a type beyond the defined enumerants, such that
+--     applications can avoid checking individual features, extensions, or
+--     versions before querying supported properties of a particular
+--     enumerant.
+--
+-- -   Clarification that copies between images of any type are allowed,
+--     treating 1D images as 2D images with a height of 1.
+--
+-- == New Commands
+--
+-- -   'cmdBindIndexBuffer2KHR'
+--
+-- -   'getDeviceImageSubresourceLayoutKHR'
+--
+-- -   'getImageSubresourceLayout2KHR'
+--
+-- -   'getRenderingAreaGranularityKHR'
+--
+-- == New Structures
+--
+-- -   'DeviceImageSubresourceInfoKHR'
+--
+-- -   'ImageSubresource2KHR'
+--
+-- -   'RenderingAreaInfoKHR'
+--
+-- -   'SubresourceLayout2KHR'
+--
+-- -   Extending 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
+--     'Vulkan.Core10.Buffer.BufferCreateInfo',
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT':
+--
+--     -   'BufferUsageFlags2CreateInfoKHR'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
+--     'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':
+--
+--     -   'PipelineCreateFlags2CreateInfoKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMaintenance5FeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMaintenance5PropertiesKHR'
+--
+-- == New Enums
+--
+-- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'
+--
+-- -   'PipelineCreateFlagBits2KHR'
+--
+-- == New Bitmasks
+--
+-- -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR'
+--
+-- -   'PipelineCreateFlags2KHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_MAINTENANCE_5_EXTENSION_NAME'
+--
+-- -   'KHR_MAINTENANCE_5_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.Format.Format':
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR'
+--
+--     -   'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--
+--     -   'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_buffer VK_EXT_descriptor_buffer>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT'
+--
+--     -   'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_protected_access VK_EXT_pipeline_protected_access>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT'
+--
+--     -   'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- and
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- and
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties VK_KHR_pipeline_executable_properties>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_LIBRARY_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_video_decode_queue VK_KHR_video_decode_queue>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_video_encode_queue VK_KHR_video_encode_queue>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromap VK_NV_displacement_micromap>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'BUFFER_USAGE_2_RAY_TRACING_BIT_NV'
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur VK_NV_ray_tracing_motion_blur>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group VK_KHR_device_group>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address VK_EXT_buffer_device_address>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3 Version 1.3>
+-- or
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control VK_EXT_pipeline_creation_cache_control>
+-- is supported:
+--
+-- -   Extending 'PipelineCreateFlagBits2KHR':
+--
+--     -   'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR'
+--
+--     -   'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR'
+--
+-- == Issues
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2022-12-12 (Stu Smith)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR',
+-- 'PhysicalDeviceMaintenance5FeaturesKHR',
+-- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR',
+-- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR',
+-- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR',
+-- 'getRenderingAreaGranularityKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance5 Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_maintenance5  ( BufferUsageFlags2CreateInfoKHR
+                                              , DeviceImageSubresourceInfoKHR
+                                              , ImageSubresource2KHR
+                                              , PhysicalDeviceMaintenance5FeaturesKHR
+                                              , PhysicalDeviceMaintenance5PropertiesKHR
+                                              , PipelineCreateFlags2CreateInfoKHR
+                                              , RenderingAreaInfoKHR
+                                              , SubresourceLayout2KHR
+                                              ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
+data BufferUsageFlags2CreateInfoKHR
+
+instance ToCStruct BufferUsageFlags2CreateInfoKHR
+instance Show BufferUsageFlags2CreateInfoKHR
+
+instance FromCStruct BufferUsageFlags2CreateInfoKHR
+
+
+data DeviceImageSubresourceInfoKHR
+
+instance ToCStruct DeviceImageSubresourceInfoKHR
+instance Show DeviceImageSubresourceInfoKHR
+
+instance FromCStruct DeviceImageSubresourceInfoKHR
+
+
+data ImageSubresource2KHR
+
+instance ToCStruct ImageSubresource2KHR
+instance Show ImageSubresource2KHR
+
+instance FromCStruct ImageSubresource2KHR
+
+
+data PhysicalDeviceMaintenance5FeaturesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance5FeaturesKHR
+instance Show PhysicalDeviceMaintenance5FeaturesKHR
+
+instance FromCStruct PhysicalDeviceMaintenance5FeaturesKHR
+
+
+data PhysicalDeviceMaintenance5PropertiesKHR
+
+instance ToCStruct PhysicalDeviceMaintenance5PropertiesKHR
+instance Show PhysicalDeviceMaintenance5PropertiesKHR
+
+instance FromCStruct PhysicalDeviceMaintenance5PropertiesKHR
+
+
+data PipelineCreateFlags2CreateInfoKHR
+
+instance ToCStruct PipelineCreateFlags2CreateInfoKHR
+instance Show PipelineCreateFlags2CreateInfoKHR
+
+instance FromCStruct PipelineCreateFlags2CreateInfoKHR
+
+
+data RenderingAreaInfoKHR
+
+instance ToCStruct RenderingAreaInfoKHR
+instance Show RenderingAreaInfoKHR
+
+instance FromCStruct RenderingAreaInfoKHR
+
+
+type role SubresourceLayout2KHR nominal
+data SubresourceLayout2KHR (es :: [Type])
+
+instance ( Extendss SubresourceLayout2KHR es
+         , PokeChain es ) => ToCStruct (SubresourceLayout2KHR es)
+instance Show (Chain es) => Show (SubresourceLayout2KHR es)
+
+instance ( Extendss SubresourceLayout2KHR es
+         , PeekChain es ) => FromCStruct (SubresourceLayout2KHR es)
+
diff --git a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs
--- a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Faith Ekstrand
@@ -43,8 +46,8 @@
 -- == Description
 --
 -- This extension provides extensible versions of the Vulkan memory map and
--- unmap entrypoints. The new entrypoints are functionally identical to the
--- core entrypoints, except that their parameters are specified using
+-- unmap entry points. The new entry points are functionally identical to
+-- the core entry points, except that their parameters are specified using
 -- extensible structures that can be used to pass extension-specific
 -- information.
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Faith Ekstrand
@@ -43,8 +46,8 @@
 -- == Description
 --
 -- This extension provides extensible versions of the Vulkan memory map and
--- unmap entrypoints. The new entrypoints are functionally identical to the
--- core entrypoints, except that their parameters are specified using
+-- unmap entry points. The new entry points are functionally identical to
+-- the core entry points, except that their parameters are specified using
 -- extensible structures that can be used to pass extension-specific
 -- information.
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_multiview.hs b/src/Vulkan/Extensions/VK_KHR_multiview.hs
--- a/src/Vulkan/Extensions/VK_KHR_multiview.hs
+++ b/src/Vulkan/Extensions/VK_KHR_multiview.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs b/src/Vulkan/Extensions/VK_KHR_performance_query.hs
--- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs
+++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -278,17 +281,17 @@
 -- > VkDevice device;
 -- >
 -- > VkQueryPoolPerformanceCreateInfoKHR performanceQueryCreateInfo = {
--- >   VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
--- >   NULL,
+-- >   .sType = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
+-- >   .pNext = NULL,
 -- >
 -- >   // Specify the queue family that this performance query is performed on
--- >   queueFamilyIndex,
+-- >   .queueFamilyIndex = queueFamilyIndex,
 -- >
 -- >   // The number of counters to enable
--- >   enabledCounterCount,
+-- >   .counterIndexCount = enabledCounterCount,
 -- >
 -- >   // The array of indices of counters to enable
--- >   enabledCounters
+-- >   .pCounterIndices = enabledCounters
 -- > };
 -- >
 -- >
@@ -301,16 +304,13 @@
 -- >   &numPasses);
 -- >
 -- > VkQueryPoolCreateInfo queryPoolCreateInfo = {
--- >   VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
--- >   &performanceQueryCreateInfo,
--- >   0,
--- >
+-- >   .sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
+-- >   .pNext = &performanceQueryCreateInfo,
+-- >   .flags = 0,
 -- >   // Using our new query type here
--- >   VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
--- >
--- >   1,
--- >
--- >   0
+-- >   .queryType = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
+-- >   .queryCount = 1,
+-- >   .pipelineStatistics = 0
 -- > };
 -- >
 -- > VkQueryPool queryPool;
@@ -330,17 +330,17 @@
 -- > VkCommandBuffer commandBuffer;
 -- >
 -- > VkCommandBufferBeginInfo commandBufferBeginInfo = {
--- >   VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
--- >   NULL,
--- >   0,
--- >   NULL
+-- >   .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+-- >   .pNext = NULL,
+-- >   .flags = 0,
+-- >   .pInheritanceInfo = NULL
 -- > };
 -- >
 -- > VkAcquireProfilingLockInfoKHR lockInfo = {
--- >   VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
--- >   NULL,
--- >   0,
--- >   UINT64_MAX // Wait forever for the lock
+-- >   .sType = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
+-- >   .pNext = NULL,
+-- >   .flags = 0,
+-- >   .timeout = UINT64_MAX // Wait forever for the lock
 -- > };
 -- >
 -- > // Acquire the profiling lock before we record command buffers
@@ -423,7 +423,7 @@
 -- >   1,
 -- >   sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount,
 -- >   recordedCounters,
--- >   sizeof(VkPerformanceCounterResultKHR),
+-- >   sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount,
 -- >   NULL);
 -- >
 -- > // recordedCounters is filled with our counters, we will look at one for posterity
diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot b/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
@@ -278,17 +281,17 @@
 -- > VkDevice device;
 -- >
 -- > VkQueryPoolPerformanceCreateInfoKHR performanceQueryCreateInfo = {
--- >   VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
--- >   NULL,
+-- >   .sType = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
+-- >   .pNext = NULL,
 -- >
 -- >   // Specify the queue family that this performance query is performed on
--- >   queueFamilyIndex,
+-- >   .queueFamilyIndex = queueFamilyIndex,
 -- >
 -- >   // The number of counters to enable
--- >   enabledCounterCount,
+-- >   .counterIndexCount = enabledCounterCount,
 -- >
 -- >   // The array of indices of counters to enable
--- >   enabledCounters
+-- >   .pCounterIndices = enabledCounters
 -- > };
 -- >
 -- >
@@ -301,16 +304,13 @@
 -- >   &numPasses);
 -- >
 -- > VkQueryPoolCreateInfo queryPoolCreateInfo = {
--- >   VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
--- >   &performanceQueryCreateInfo,
--- >   0,
--- >
+-- >   .sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
+-- >   .pNext = &performanceQueryCreateInfo,
+-- >   .flags = 0,
 -- >   // Using our new query type here
--- >   VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
--- >
--- >   1,
--- >
--- >   0
+-- >   .queryType = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
+-- >   .queryCount = 1,
+-- >   .pipelineStatistics = 0
 -- > };
 -- >
 -- > VkQueryPool queryPool;
@@ -330,17 +330,17 @@
 -- > VkCommandBuffer commandBuffer;
 -- >
 -- > VkCommandBufferBeginInfo commandBufferBeginInfo = {
--- >   VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
--- >   NULL,
--- >   0,
--- >   NULL
+-- >   .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+-- >   .pNext = NULL,
+-- >   .flags = 0,
+-- >   .pInheritanceInfo = NULL
 -- > };
 -- >
 -- > VkAcquireProfilingLockInfoKHR lockInfo = {
--- >   VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
--- >   NULL,
--- >   0,
--- >   UINT64_MAX // Wait forever for the lock
+-- >   .sType = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
+-- >   .pNext = NULL,
+-- >   .flags = 0,
+-- >   .timeout = UINT64_MAX // Wait forever for the lock
 -- > };
 -- >
 -- > // Acquire the profiling lock before we record command buffers
@@ -423,7 +423,7 @@
 -- >   1,
 -- >   sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount,
 -- >   recordedCounters,
--- >   sizeof(VkPerformanceCounterResultKHR),
+-- >   sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount,
 -- >   NULL);
 -- >
 -- > // recordedCounters is filled with our counters, we will look at one for posterity
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -71,7 +74,7 @@
 -- properties and statistics about the different executables produced by
 -- the pipeline compilation process. This is intended to be used by
 -- debugging and performance tools to allow them to provide more detailed
--- information to the user. Certain compile-time shader statistics provided
+-- information to the user. Certain compile time shader statistics provided
 -- through this extension may be useful to developers for debugging or
 -- performance analysis.
 --
@@ -911,7 +914,7 @@
            zero
 
 
--- | VkPipelineExecutableStatisticKHR - Structure describing a compile-time
+-- | VkPipelineExecutableStatisticKHR - Structure describing a compile time
 -- pipeline executable statistic
 --
 -- == Valid Usage (Implicit)
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -71,7 +74,7 @@
 -- properties and statistics about the different executables produced by
 -- the pipeline compilation process. This is intended to be used by
 -- debugging and performance tools to allow them to provide more detailed
--- information to the user. Certain compile-time shader statistics provided
+-- information to the user. Certain compile time shader statistics provided
 -- through this extension may be useful to developers for debugging or
 -- performance analysis.
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Christoph Kubisch
@@ -174,6 +177,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library VK_KHR_pipeline_library>,
+-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
 -- 'Vulkan.Core10.Handles.Pipeline',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Christoph Kubisch
diff --git a/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs b/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs
--- a/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs
+++ b/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Charles Giessen
diff --git a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs
--- a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs
+++ b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -59,7 +62,7 @@
 --
 -- == Description
 --
--- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan
+-- The @VK_KHR_portability_subset@ extension allows a non-conformant Vulkan
 -- implementation to be built on top of another non-Vulkan graphics API,
 -- and identifies differences between that implementation and a
 -- fully-conformant native Vulkan implementation.
diff --git a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -59,7 +62,7 @@
 --
 -- == Description
 --
--- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan
+-- The @VK_KHR_portability_subset@ extension allows a non-conformant Vulkan
 -- implementation to be built on top of another non-Vulkan graphics API,
 -- and identifies differences between that implementation and a
 -- fully-conformant native Vulkan implementation.
diff --git a/src/Vulkan/Extensions/VK_KHR_present_id.hs b/src/Vulkan/Extensions/VK_KHR_present_id.hs
--- a/src/Vulkan/Extensions/VK_KHR_present_id.hs
+++ b/src/Vulkan/Extensions/VK_KHR_present_id.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -276,7 +279,7 @@
   { -- | @swapchainCount@ is the number of swapchains being presented to the
     -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' command.
     swapchainCount :: Word32
-  , -- | @pPresentIds@ is @NULL@ or a pointer to an array of uint64_t with
+  , -- | @pPresentIds@ is @NULL@ or a pointer to an array of @uint64_t@ with
     -- @swapchainCount@ entries. If not @NULL@, each non-zero value in
     -- @pPresentIds@ specifies the present id to be associated with the
     -- presentation of the swapchain with the same index in the
diff --git a/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot b/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_present_wait.hs b/src/Vulkan/Extensions/VK_KHR_present_wait.hs
--- a/src/Vulkan/Extensions/VK_KHR_present_wait.hs
+++ b/src/Vulkan/Extensions/VK_KHR_present_wait.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot b/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
--- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
+++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -479,28 +482,28 @@
 -- > {
 -- >     // binding to a single image descriptor
 -- >     {
--- >         0,                                           // binding
--- >         0,                                           // dstArrayElement
--- >         1,                                           // descriptorCount
--- >         VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,   // descriptorType
--- >         offsetof(AppDataStructure, imageInfo),       // offset
--- >         0                                            // stride is not required if descriptorCount is 1
+-- >         .binding = 0,
+-- >         .dstArrayElement = 0,
+-- >         .descriptorCount = 1,
+-- >         .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+-- >         .offset = offsetof(AppDataStructure, imageInfo),
+-- >         .stride = 0     // not required if descriptorCount is 1
 -- >     }
 -- > };
 -- >
 -- > // create a descriptor update template for push descriptor set updates
 -- > const VkDescriptorUpdateTemplateCreateInfo createInfo =
 -- > {
--- >     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,  // sType
--- >     NULL,                                                      // pNext
--- >     0,                                                         // flags
--- >     1,                                                         // descriptorUpdateEntryCount
--- >     descriptorUpdateTemplateEntries,                           // pDescriptorUpdateEntries
--- >     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,   // templateType
--- >     0,                                                         // descriptorSetLayout, ignored by given templateType
--- >     VK_PIPELINE_BIND_POINT_GRAPHICS,                           // pipelineBindPoint
--- >     myPipelineLayout,                                          // pipelineLayout
--- >     0,                                                         // set
+-- >     .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
+-- >     .pNext = NULL,
+-- >     .flags = 0,
+-- >     .descriptorUpdateEntryCount = 1,
+-- >     .pDescriptorUpdateEntries = descriptorUpdateTemplateEntries,
+-- >     .templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
+-- >     .descriptorSetLayout = 0,   // ignored by given templateType
+-- >     .pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
+-- >     .pipelineLayout = myPipelineLayout,
+-- >     .set = 0,
 -- > };
 -- >
 -- > VkDescriptorUpdateTemplate myDescriptorUpdateTemplate;
diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_query.hs b/src/Vulkan/Extensions/VK_KHR_ray_query.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_query.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_query.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
 --
@@ -316,6 +319,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -341,6 +354,34 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-selectableCubicWeights-09214# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -382,11 +423,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08600# For each set /n/ that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -396,12 +435,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08601# For each push constant
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -413,12 +450,10 @@
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -581,34 +616,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-08614# If
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdTraceRaysIndirect2KHR-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -620,18 +646,24 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdTraceRaysIndirect2KHR-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-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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
@@ -734,6 +766,8 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977# If
 --     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -741,11 +775,34 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978# If
 --     any command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdTraceRaysIndirect2KHR-None-07288# Any shader invocation
 --     executed by this command /must/
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
 --     and
@@ -848,6 +851,7 @@
 import Vulkan.Core10.Handles (PipelineCache)
 import Vulkan.Core10.Handles (PipelineCache(..))
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
 import Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo)
 import Vulkan.Core10.Handles (PipelineLayout)
@@ -938,6 +942,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdTraceRaysKHR-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdTraceRaysKHR-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -963,6 +977,33 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdTraceRaysKHR-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdTraceRaysKHR-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -1004,11 +1045,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -1018,12 +1057,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -1035,12 +1072,10 @@
 -- -   #VUID-vkCmdTraceRaysKHR-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -1201,34 +1236,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdTraceRaysKHR-commandBuffer-08614# If @commandBuffer@ is
+-- -   #VUID-vkCmdTraceRaysKHR-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdTraceRaysKHR-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysKHR-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdTraceRaysKHR-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysKHR-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -1240,18 +1266,24 @@
 --
 -- -   #VUID-vkCmdTraceRaysKHR-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdTraceRaysKHR-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-vkCmdTraceRaysKHR-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdTraceRaysKHR-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdTraceRaysKHR-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
@@ -1352,6 +1384,8 @@
 --
 -- -   #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977# If
 --     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -1359,12 +1393,35 @@
 --
 -- -   #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978# If any
 --     command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdTraceRaysKHR-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>
@@ -1922,7 +1979,7 @@
 -- = Description
 --
 -- The 'Vulkan.Core10.Enums.Result.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS'
--- error is returned if the implementation is unable to re-use the shader
+-- error is returned if the implementation is unable to reuse the shader
 -- group handles provided in
 -- 'RayTracingShaderGroupCreateInfoKHR'::@pShaderGroupCaptureReplayHandle@
 -- when
@@ -2183,6 +2240,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -2208,6 +2275,33 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -2249,11 +2343,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -2263,12 +2355,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08601# For each push constant
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -2280,12 +2370,10 @@
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -2448,34 +2536,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-08614# If
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdTraceRaysIndirectKHR-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -2487,18 +2566,24 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-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-vkCmdTraceRaysIndirectKHR-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdTraceRaysIndirectKHR-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-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
@@ -2601,6 +2686,8 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977# If
 --     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -2608,12 +2695,35 @@
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978# If
 --     any command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdTraceRaysIndirectKHR-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>
@@ -3305,13 +3415,19 @@
 -- is not provided is computed as described in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.
 --
+-- If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain,
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
+-- from that structure is used instead of @flags@ from this structure.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984# If @flags@
 --     contains the
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
 --     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
---     a valid handle to a ray tracing 'Vulkan.Core10.Handles.Pipeline'
+--     a valid ray tracing 'Vulkan.Core10.Handles.Pipeline' handle
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-07985# If @flags@
 --     contains the
@@ -3570,7 +3686,8 @@
 -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext# Each @pNext@
 --     member of any structure (including this one) in the @pNext@ chain
 --     /must/ be either @NULL@ or a pointer to a valid instance of
---     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',
 --     or
 --     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT'
 --
@@ -3688,6 +3805,7 @@
   extends _ f
     | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f
     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
+    | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss RayTracingPipelineCreateInfoKHR es
@@ -3793,7 +3911,8 @@
 --
 -- = Description
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 VK_KHR_spirv_1_4>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs
@@ -0,0 +1,253 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_ray_tracing_position_fetch - device extension
+--
+-- == VK_KHR_ray_tracing_position_fetch
+--
+-- [__Name String__]
+--     @VK_KHR_ray_tracing_position_fetch@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     482
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
+--
+-- [__Contact__]
+--
+--     -   Eric Werness
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_ray_tracing_position_fetch.adoc VK_KHR_ray_tracing_position_fetch>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-02-17
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_tracing_position_fetch.html SPV_KHR_ray_tracing_position_fetch>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing_position_fetch.txt GLSL_EXT_ray_tracing_position_fetch>
+--
+--     -   Interacts with @VK_KHR_ray_tracing_pipeline@
+--
+--     -   Interacts with @VK_KHR_ray_query@
+--
+-- [__Contributors__]
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Stu Smith, AMD
+--
+--     -   Yuriy O’Donnell, Epic Games
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Joshua Barczak, Intel
+--
+--     -   Lionel Landwerlin, Intel
+--
+--     -   Andrew Garrard, Imagination Technologies
+--
+--     -   Alex Bourd, Qualcomm
+--
+--     -   Yunpeng Zhu, Huawei Technologies
+--
+--     -   Marius Bjorge, Arm
+--
+--     -   Daniel Koch, NVIDIA
+--
+-- == Description
+--
+-- @VK_KHR_ray_tracing_position_fetch@ adds the ability to fetch the vertex
+-- positions in the shader from a hit triangle as stored in the
+-- acceleration structure.
+--
+-- An application adds
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR'
+-- to the acceleration structure at build time. Then, if the hit is a
+-- triangle geometry, the shader (any-hit or closest hit for ray pipelines
+-- or using ray query) /can/ fetch the three, three-component vertex
+-- positions in object space, of the triangle which was hit.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceRayTracingPositionFetchFeaturesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME'
+--
+-- -   'KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagBitsKHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR'
+--
+-- == New Built-In Variables
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hittrianglevertexpositions HitTriangleVertexPositionsKHR>
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingPositionFetchKHR RayTracingPositionFetchKHR>
+--
+-- == Issues
+--
+-- None Yet!
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-02-17 (Eric Werness)
+--
+--     -   internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_position_fetch Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch  ( PhysicalDeviceRayTracingPositionFetchFeaturesKHR(..)
+                                                            , KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION
+                                                            , pattern KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION
+                                                            , KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME
+                                                            , pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME
+                                                            , BuildAccelerationStructureFlagBitsKHR(..)
+                                                            , BuildAccelerationStructureFlagsKHR
+                                                            ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR))
+import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagBitsKHR(..))
+import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagsKHR)
+-- | VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR - Structure
+-- describing support for fetching vertex positions of hit triangles
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' 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. 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' /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_KHR_ray_tracing_position_fetch VK_KHR_ray_tracing_position_fetch>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceRayTracingPositionFetchFeaturesKHR = PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+  { -- | #features-rayTracingPositionFetch# @rayTracingPositionFetch@ indicates
+    -- that the implementation supports fetching the object space vertex
+    -- positions of a hit triangle.
+    rayTracingPositionFetch :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+
+instance ToCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceRayTracingPositionFetchFeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (rayTracingPositionFetch))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR where
+  peekCStruct p = do
+    rayTracingPositionFetch <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+             (bool32ToBool rayTracingPositionFetch)
+
+instance Storable PhysicalDeviceRayTracingPositionFetchFeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceRayTracingPositionFetchFeaturesKHR where
+  zero = PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+           zero
+
+
+type KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION"
+pattern KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION = 1
+
+
+type KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME = "VK_KHR_ray_tracing_position_fetch"
+
+-- No documentation found for TopLevel "VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME"
+pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME = "VK_KHR_ray_tracing_position_fetch"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot
@@ -0,0 +1,151 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_ray_tracing_position_fetch - device extension
+--
+-- == VK_KHR_ray_tracing_position_fetch
+--
+-- [__Name String__]
+--     @VK_KHR_ray_tracing_position_fetch@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     482
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>
+--
+-- [__Contact__]
+--
+--     -   Eric Werness
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_ray_tracing_position_fetch.adoc VK_KHR_ray_tracing_position_fetch>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-02-17
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_tracing_position_fetch.html SPV_KHR_ray_tracing_position_fetch>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing_position_fetch.txt GLSL_EXT_ray_tracing_position_fetch>
+--
+--     -   Interacts with @VK_KHR_ray_tracing_pipeline@
+--
+--     -   Interacts with @VK_KHR_ray_query@
+--
+-- [__Contributors__]
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Stu Smith, AMD
+--
+--     -   Yuriy O’Donnell, Epic Games
+--
+--     -   Ralph Potter, Samsung
+--
+--     -   Joshua Barczak, Intel
+--
+--     -   Lionel Landwerlin, Intel
+--
+--     -   Andrew Garrard, Imagination Technologies
+--
+--     -   Alex Bourd, Qualcomm
+--
+--     -   Yunpeng Zhu, Huawei Technologies
+--
+--     -   Marius Bjorge, Arm
+--
+--     -   Daniel Koch, NVIDIA
+--
+-- == Description
+--
+-- @VK_KHR_ray_tracing_position_fetch@ adds the ability to fetch the vertex
+-- positions in the shader from a hit triangle as stored in the
+-- acceleration structure.
+--
+-- An application adds
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR'
+-- to the acceleration structure at build time. Then, if the hit is a
+-- triangle geometry, the shader (any-hit or closest hit for ray pipelines
+-- or using ray query) /can/ fetch the three, three-component vertex
+-- positions in object space, of the triangle which was hit.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceRayTracingPositionFetchFeaturesKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME'
+--
+-- -   'KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagBitsKHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR'
+--
+-- == New Built-In Variables
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hittrianglevertexpositions HitTriangleVertexPositionsKHR>
+--
+-- == New SPIR-V Capabilities
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingPositionFetchKHR RayTracingPositionFetchKHR>
+--
+-- == Issues
+--
+-- None Yet!
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-02-17 (Eric Werness)
+--
+--     -   internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_position_fetch Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch  (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+
+instance ToCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+instance Show PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+
+instance FromCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR
+
diff --git a/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs b/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs
--- a/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs
+++ b/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs b/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs
--- a/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs
+++ b/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     3
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
 --
@@ -86,7 +89,7 @@
 --
 -- >     VkSamplerCreateInfo createInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType
+-- >         .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
 -- >         // Other members set to application-desired values
 -- >     };
 -- >
diff --git a/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs b/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs
--- a/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs
+++ b/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     14
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>
 --     and
@@ -26,7 +29,7 @@
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
@@ -163,11 +166,6 @@
 --
 --     -   'CHROMA_LOCATION_MIDPOINT_KHR'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.Format.Format':
 --
 --     -   'FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR'
@@ -315,6 +313,8 @@
 --
 --     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT'
 --
+--     -   'DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT'
+--
 -- == Version History
 --
 -- -   Revision 1, 2017-01-24 (Andrew Garrard)
@@ -399,7 +399,6 @@
                                                           , pattern STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR
                                                           , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR
                                                           , pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR
-                                                          , pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT
                                                           , pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
                                                           , pattern FORMAT_G8B8G8R8_422_UNORM_KHR
                                                           , pattern FORMAT_B8G8R8G8_422_UNORM_KHR
@@ -455,6 +454,7 @@
                                                           , pattern SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR
                                                           , pattern CHROMA_LOCATION_COSITED_EVEN_KHR
                                                           , pattern CHROMA_LOCATION_MIDPOINT_KHR
+                                                          , pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT
                                                           , createSamplerYcbcrConversionKHR
                                                           , destroySamplerYcbcrConversionKHR
                                                           , SamplerYcbcrConversionKHR
@@ -585,10 +585,6 @@
 pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
 
 
--- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT"
-pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT
-
-
 -- No documentation found for TopLevel "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR"
 pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION
 
@@ -807,6 +803,10 @@
 
 -- No documentation found for TopLevel "VK_CHROMA_LOCATION_MIDPOINT_KHR"
 pattern CHROMA_LOCATION_MIDPOINT_KHR = CHROMA_LOCATION_MIDPOINT
+
+
+-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT"
+pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT
 
 
 -- No documentation found for TopLevel "vkCreateSamplerYcbcrConversionKHR"
diff --git a/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs b/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs
--- a/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs
+++ b/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs b/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs b/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs b/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
@@ -155,7 +158,7 @@
 -- __RESOLVED__: These instructions must always accurately detect inf\/nan
 -- if it is passed to them.
 --
--- == Version 4 API incompatibility
+-- == Version 4 API Incompatibility
 --
 -- The original versions of @VK_KHR_shader_float_controls@ shipped with
 -- booleans named “separateDenormSettings” and
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs b/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
@@ -28,7 +31,7 @@
 -- [__Contact__]
 --
 --     -   Kevin Petit
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_integer_dot_product] @kevinpetit%0A*Here describe the issue or question you have about the VK_KHR_shader_integer_dot_product extension* >
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_integer_dot_product] @kpet%0A*Here describe the issue or question you have about the VK_KHR_shader_integer_dot_product extension* >
 --
 -- [__Extension Proposal__]
 --     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_integer_dot_product.adoc VK_KHR_shader_integer_dot_product>
@@ -87,7 +90,7 @@
 -- This extension adds support for the integer dot product SPIR-V
 -- instructions defined in SPV_KHR_integer_dot_product. These instructions
 -- are particularly useful for neural network inference and training but
--- find uses in other general purpose compute applications as well.
+-- find uses in other general-purpose compute applications as well.
 --
 -- == New Structures
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs b/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs
--- a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs b/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs
--- a/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs
+++ b/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float_controls VK_KHR_shader_float_controls>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs b/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs
--- a/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs
+++ b/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs b/src/Vulkan/Extensions/VK_KHR_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     25
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   James Jones
@@ -1278,6 +1281,7 @@
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>,
+-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV',
 -- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT',
 -- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT',
 -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',
@@ -1301,7 +1305,7 @@
 -- hold pending presentation requests. If the queue is full when a new
 -- presentation request is received, the new request replaces the existing
 -- entry, and any images associated with the prior entry become available
--- for re-use by the application. One request is removed from the queue and
+-- for reuse by the application. One request is removed from the queue and
 -- processed during each vertical blanking period in which the queue is
 -- non-empty.
 pattern PRESENT_MODE_MAILBOX_KHR = PresentModeKHR 1
@@ -1431,9 +1435,9 @@
 -- For a traditional “Linear” or non-gamma transfer function color space
 -- use 'COLOR_SPACE_PASS_THROUGH_EXT'.
 --
--- The color components of non-linear color space swap chain images /must/
+-- The color components of non-linear color space swapchain images /must/
 -- have had the appropriate transfer function applied. The color space
--- selected for the swap chain image will not affect the processing of data
+-- selected for the swapchain image will not affect the processing of data
 -- written into the image by the implementation. Vulkan requires that all
 -- implementations support the sRGB transfer function by use of an SRGB
 -- pixel format. Other transfer functions, such as SMPTE 170M or SMPTE2084,
diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     25
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   James Jones
diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
--- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_swapchain.hs
--- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs
+++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     70
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
@@ -1202,6 +1205,7 @@
 import Vulkan.Core10.Handles (Fence(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Enums.Format (Format)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT)
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT)
@@ -1243,6 +1247,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SwapchainLatencyCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentFenceInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModeInfoEXT)
@@ -1331,11 +1336,11 @@
 -- The @pCreateInfo->surface@ /must/ not be destroyed until after the
 -- swapchain is destroyed.
 --
--- If @pCreateInfo->oldSwapchain@ is
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the native window referred
--- to by @pCreateInfo->surface@ is already associated with a Vulkan
--- swapchain, 'Vulkan.Core10.Enums.Result.ERROR_NATIVE_WINDOW_IN_USE_KHR'
--- /must/ be returned.
+-- If @oldSwapchain@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the
+-- native window referred to by @pCreateInfo->surface@ is already
+-- associated with a Vulkan swapchain,
+-- 'Vulkan.Core10.Enums.Result.ERROR_NATIVE_WINDOW_IN_USE_KHR' /must/ be
+-- returned.
 --
 -- If the native window referred to by @pCreateInfo->surface@ is already
 -- associated with a non-Vulkan graphics API surface,
@@ -1941,12 +1946,6 @@
 --     the @pWaitSemaphores@ member of @pPresentInfo@ executes on @queue@,
 --     there /must/ be no other queues waiting on the same semaphore
 --
--- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-01295# All elements of the
---     @pWaitSemaphores@ member of @pPresentInfo@ /must/ be semaphores that
---     are signaled, or have
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
---     previously submitted for execution
---
 -- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-03267# All elements of the
 --     @pWaitSemaphores@ member of @pPresentInfo@ /must/ be created with a
 --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
@@ -1955,8 +1954,10 @@
 -- -   #VUID-vkQueuePresentKHR-pWaitSemaphores-03268# All elements of the
 --     @pWaitSemaphores@ member of @pPresentInfo@ /must/ reference a
 --     semaphore signal operation that has been submitted for execution and
---     any semaphore signal operations on which it depends (if any) /must/
---     have also been submitted for execution
+--     any
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
+--     on which it depends (if any) /must/ have also been submitted for
+--     execution
 --
 -- Any writes to memory backing the images referenced by the
 -- @pImageIndices@ and @pSwapchains@ members of @pPresentInfo@, that are
@@ -2038,6 +2039,7 @@
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 -- | <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> |
 -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
 --
 -- == Return Codes
@@ -2731,6 +2733,7 @@
 --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',
 --     'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT',
 --     'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',
+--     'Vulkan.Extensions.VK_NV_low_latency2.SwapchainLatencyCreateInfoNV',
 --     'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV',
 --     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',
 --     or
@@ -2915,6 +2918,7 @@
   getNext SwapchainCreateInfoKHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SwapchainCreateInfoKHR e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @SwapchainLatencyCreateInfoNV = Just f
     | Just Refl <- eqT @e @SwapchainPresentScalingCreateInfoEXT = Just f
     | Just Refl <- eqT @e @SwapchainPresentModesCreateInfoEXT = Just f
     | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f
@@ -3059,6 +3063,9 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-VkPresentInfoKHR-pSwapchain-09231# Elements of @pSwapchain@
+--     /must/ be unique
+--
 -- -   #VUID-VkPresentInfoKHR-pImageIndices-01430# Each element of
 --     @pImageIndices@ /must/ be the index of a presentable image acquired
 --     from the swapchain specified by the corresponding element of the
@@ -3076,6 +3083,12 @@
 --     feature is not enabled, each @presentIds@ entry in that structure
 --     /must/ be NULL
 --
+-- -   #VUID-VkPresentInfoKHR-pSwapchains-09199# If any element of the
+--     @pSwapchains@ array has been created with
+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT',
+--     all of the elements of this array /must/ be created with
+--     'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT'
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkPresentInfoKHR-sType-sType# @sType@ /must/ be
@@ -3086,6 +3099,7 @@
 --     @NULL@ or a pointer to a valid instance of
 --     'DeviceGroupPresentInfoKHR',
 --     'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',
+--     'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
 --     'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',
 --     'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR',
 --     'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR',
@@ -3138,8 +3152,7 @@
     waitSemaphores :: Vector Semaphore
   , -- | @pSwapchains@ is a pointer to an array of
     -- 'Vulkan.Extensions.Handles.SwapchainKHR' objects with @swapchainCount@
-    -- entries. A given swapchain /must/ not appear in this list more than
-    -- once.
+    -- entries.
     swapchains :: Vector SwapchainKHR
   , -- | @pImageIndices@ is a pointer to an array of indices into the array of
     -- each swapchain’s presentable images, with @swapchainCount@ entries. Each
@@ -3168,6 +3181,7 @@
   extends _ f
     | Just Refl <- eqT @e @SwapchainPresentModeInfoEXT = Just f
     | Just Refl <- eqT @e @SwapchainPresentFenceInfoEXT = Just f
+    | Just Refl <- eqT @e @FrameBoundaryEXT = Just f
     | Just Refl <- eqT @e @PresentFrameTokenGGP = Just f
     | Just Refl <- eqT @e @PresentTimesInfoGOOGLE = Just f
     | Just Refl <- eqT @e @PresentIdKHR = Just f
diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot b/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     70
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs b/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs
--- a/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs
+++ b/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
diff --git a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs
--- a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
@@ -700,15 +703,14 @@
 -- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04957# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading>
 --     feature is not enabled, @stage@ /must/ not contain
---     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI'
 --
 -- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask>
 --     feature is not enabled, @stage@ /must/ not contain
 --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
 --
--- -   #VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07946# If
---     neither the
+-- -   #VUID-vkCmdWriteBufferMarker2AMD-stage-07946# If neither the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>
 --     extension or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>
diff --git a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs b/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs
--- a/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs
+++ b/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs b/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs
--- a/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs
+++ b/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs b/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs
--- a/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs
+++ b/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs
@@ -17,12 +17,15 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class VK_KHR_storage_buffer_storage_class>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1-promotions Vulkan 1.1>
diff --git a/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs b/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs
--- a/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs
+++ b/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2-promotions Vulkan 1.2>
diff --git a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs
--- a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs
+++ b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32 VK_KHR_external_memory_win32>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32 VK_KHR_external_memory_win32>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs
--- a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs
+++ b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     6
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs b/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs
--- a/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs
+++ b/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to
 --         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>
diff --git a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs
--- a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs
+++ b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Charles Giessen
diff --git a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot
--- a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot
+++ b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Charles Giessen
diff --git a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs
@@ -0,0 +1,258 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_MSFT_layered_driver - device extension
+--
+-- == VK_MSFT_layered_driver
+--
+-- [__Name String__]
+--     @VK_MSFT_layered_driver@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     531
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Jesse Natalie
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_MSFT_layered_driver] @jenatali%0A*Here describe the issue or question you have about the VK_MSFT_layered_driver extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_MSFT_layered_driver.adoc VK_MSFT_layered_driver>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-06-21
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Jesse Natalie, Microsoft
+--
+-- == Description
+--
+-- This extension adds new physical device properties to allow applications
+-- and the Vulkan ICD loader to understand when a physical device is
+-- implemented as a layered driver on top of another underlying API.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceLayeredDriverPropertiesMSFT'
+--
+-- == New Enums
+--
+-- -   'LayeredDriverUnderlyingApiMSFT'
+--
+-- == New Enum Constants
+--
+-- -   'MSFT_LAYERED_DRIVER_EXTENSION_NAME'
+--
+-- -   'MSFT_LAYERED_DRIVER_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT'
+--
+-- == Examples
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-06-21 (Jesse Natalie)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'LayeredDriverUnderlyingApiMSFT',
+-- 'PhysicalDeviceLayeredDriverPropertiesMSFT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MSFT_layered_driver Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_MSFT_layered_driver  ( PhysicalDeviceLayeredDriverPropertiesMSFT(..)
+                                                 , LayeredDriverUnderlyingApiMSFT( LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT
+                                                                                 , LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT
+                                                                                 , ..
+                                                                                 )
+                                                 , MSFT_LAYERED_DRIVER_SPEC_VERSION
+                                                 , pattern MSFT_LAYERED_DRIVER_SPEC_VERSION
+                                                 , MSFT_LAYERED_DRIVER_EXTENSION_NAME
+                                                 , pattern MSFT_LAYERED_DRIVER_EXTENSION_NAME
+                                                 ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+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 Data.Int (Int32)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Kind (Type)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT))
+-- | VkPhysicalDeviceLayeredDriverPropertiesMSFT - Structure containing
+-- information about driver layering for a physical device
+--
+-- = Description
+--
+-- These are properties of the driver layering information of a physical
+-- device.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MSFT_layered_driver VK_MSFT_layered_driver>,
+-- 'LayeredDriverUnderlyingApiMSFT',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLayeredDriverPropertiesMSFT = PhysicalDeviceLayeredDriverPropertiesMSFT
+  { -- | @underlyingAPI@ is a 'LayeredDriverUnderlyingApiMSFT' value indicating
+    -- which underlying API is used to implement the layered driver, or
+    -- 'LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT' if the driver is not layered.
+    underlyingAPI :: LayeredDriverUnderlyingApiMSFT }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLayeredDriverPropertiesMSFT)
+#endif
+deriving instance Show PhysicalDeviceLayeredDriverPropertiesMSFT
+
+instance ToCStruct PhysicalDeviceLayeredDriverPropertiesMSFT where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLayeredDriverPropertiesMSFT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr LayeredDriverUnderlyingApiMSFT)) (underlyingAPI)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr LayeredDriverUnderlyingApiMSFT)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceLayeredDriverPropertiesMSFT where
+  peekCStruct p = do
+    underlyingAPI <- peek @LayeredDriverUnderlyingApiMSFT ((p `plusPtr` 16 :: Ptr LayeredDriverUnderlyingApiMSFT))
+    pure $ PhysicalDeviceLayeredDriverPropertiesMSFT
+             underlyingAPI
+
+instance Storable PhysicalDeviceLayeredDriverPropertiesMSFT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceLayeredDriverPropertiesMSFT where
+  zero = PhysicalDeviceLayeredDriverPropertiesMSFT
+           zero
+
+
+-- | VkLayeredDriverUnderlyingApiMSFT - Layered driver underlying APIs
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MSFT_layered_driver VK_MSFT_layered_driver>,
+-- 'PhysicalDeviceLayeredDriverPropertiesMSFT'
+newtype LayeredDriverUnderlyingApiMSFT = LayeredDriverUnderlyingApiMSFT Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- No documentation found for Nested "VkLayeredDriverUnderlyingApiMSFT" "VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT"
+pattern LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = LayeredDriverUnderlyingApiMSFT 0
+
+-- No documentation found for Nested "VkLayeredDriverUnderlyingApiMSFT" "VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT"
+pattern LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = LayeredDriverUnderlyingApiMSFT 1
+
+{-# COMPLETE
+  LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT
+  , LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT ::
+    LayeredDriverUnderlyingApiMSFT
+  #-}
+
+conNameLayeredDriverUnderlyingApiMSFT :: String
+conNameLayeredDriverUnderlyingApiMSFT = "LayeredDriverUnderlyingApiMSFT"
+
+enumPrefixLayeredDriverUnderlyingApiMSFT :: String
+enumPrefixLayeredDriverUnderlyingApiMSFT = "LAYERED_DRIVER_UNDERLYING_API_"
+
+showTableLayeredDriverUnderlyingApiMSFT :: [(LayeredDriverUnderlyingApiMSFT, String)]
+showTableLayeredDriverUnderlyingApiMSFT =
+  [
+    ( LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT
+    , "NONE_MSFT"
+    )
+  ,
+    ( LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT
+    , "D3D12_MSFT"
+    )
+  ]
+
+instance Show LayeredDriverUnderlyingApiMSFT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixLayeredDriverUnderlyingApiMSFT
+      showTableLayeredDriverUnderlyingApiMSFT
+      conNameLayeredDriverUnderlyingApiMSFT
+      (\(LayeredDriverUnderlyingApiMSFT x) -> x)
+      (showsPrec 11)
+
+instance Read LayeredDriverUnderlyingApiMSFT where
+  readPrec =
+    enumReadPrec
+      enumPrefixLayeredDriverUnderlyingApiMSFT
+      showTableLayeredDriverUnderlyingApiMSFT
+      conNameLayeredDriverUnderlyingApiMSFT
+      LayeredDriverUnderlyingApiMSFT
+
+type MSFT_LAYERED_DRIVER_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_MSFT_LAYERED_DRIVER_SPEC_VERSION"
+pattern MSFT_LAYERED_DRIVER_SPEC_VERSION :: forall a . Integral a => a
+pattern MSFT_LAYERED_DRIVER_SPEC_VERSION = 1
+
+
+type MSFT_LAYERED_DRIVER_EXTENSION_NAME = "VK_MSFT_layered_driver"
+
+-- No documentation found for TopLevel "VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME"
+pattern MSFT_LAYERED_DRIVER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern MSFT_LAYERED_DRIVER_EXTENSION_NAME = "VK_MSFT_layered_driver"
+
diff --git a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot
@@ -0,0 +1,107 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_MSFT_layered_driver - device extension
+--
+-- == VK_MSFT_layered_driver
+--
+-- [__Name String__]
+--     @VK_MSFT_layered_driver@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     531
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Jesse Natalie
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_MSFT_layered_driver] @jenatali%0A*Here describe the issue or question you have about the VK_MSFT_layered_driver extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_MSFT_layered_driver.adoc VK_MSFT_layered_driver>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-06-21
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Jesse Natalie, Microsoft
+--
+-- == Description
+--
+-- This extension adds new physical device properties to allow applications
+-- and the Vulkan ICD loader to understand when a physical device is
+-- implemented as a layered driver on top of another underlying API.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceLayeredDriverPropertiesMSFT'
+--
+-- == New Enums
+--
+-- -   'LayeredDriverUnderlyingApiMSFT'
+--
+-- == New Enum Constants
+--
+-- -   'MSFT_LAYERED_DRIVER_EXTENSION_NAME'
+--
+-- -   'MSFT_LAYERED_DRIVER_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT'
+--
+-- == Examples
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-06-21 (Jesse Natalie)
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'LayeredDriverUnderlyingApiMSFT',
+-- 'PhysicalDeviceLayeredDriverPropertiesMSFT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MSFT_layered_driver Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_MSFT_layered_driver  (PhysicalDeviceLayeredDriverPropertiesMSFT) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceLayeredDriverPropertiesMSFT
+
+instance ToCStruct PhysicalDeviceLayeredDriverPropertiesMSFT
+instance Show PhysicalDeviceLayeredDriverPropertiesMSFT
+
+instance FromCStruct PhysicalDeviceLayeredDriverPropertiesMSFT
+
diff --git a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs
--- a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs
+++ b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_EXT_metal_surface@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_EXT_metal_surface@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs
--- a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs
+++ b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_EXT_metal_surface@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_EXT_metal_surface@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NN_vi_surface.hs b/src/Vulkan/Extensions/VK_NN_vi_surface.hs
--- a/src/Vulkan/Extensions/VK_NN_vi_surface.hs
+++ b/src/Vulkan/Extensions/VK_NN_vi_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot b/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_NVX_binary_import.hs b/src/Vulkan/Extensions/VK_NVX_binary_import.hs
--- a/src/Vulkan/Extensions/VK_NVX_binary_import.hs
+++ b/src/Vulkan/Extensions/VK_NVX_binary_import.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Eric Werness
@@ -80,13 +83,6 @@
 --
 -- -   'NVX_BINARY_IMPORT_SPEC_VERSION'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
 --
 --     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_FUNCTION_NVX'
@@ -100,6 +96,17 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'
 --
 -- == Stub API References
 --
diff --git a/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot b/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot
--- a/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot
+++ b/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Eric Werness
@@ -80,13 +83,6 @@
 --
 -- -   'NVX_BINARY_IMPORT_SPEC_VERSION'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
 --
 --     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_FUNCTION_NVX'
@@ -100,6 +96,17 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'
 --
 -- == Stub API References
 --
diff --git a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs
--- a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs
+++ b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Eric Werness
diff --git a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot
--- a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot
+++ b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Eric Werness
diff --git a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs
--- a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs
+++ b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview VK_KHR_multiview>
 --
diff --git a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot
--- a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot
+++ b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview VK_KHR_multiview>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs b/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs
--- a/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs
+++ b/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_display VK_EXT_direct_mode_display>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs
--- a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs
+++ b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Eric Werness
diff --git a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Eric Werness
diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
--- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
+++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs
--- a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs
+++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -94,6 +97,41 @@
 --
 -- -   'NV_COOPERATIVE_MATRIX_SPEC_VERSION'
 --
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR':
+--
+--     -   'COMPONENT_TYPE_FLOAT16_NV'
+--
+--     -   'COMPONENT_TYPE_FLOAT32_NV'
+--
+--     -   'COMPONENT_TYPE_FLOAT64_NV'
+--
+--     -   'COMPONENT_TYPE_SINT16_NV'
+--
+--     -   'COMPONENT_TYPE_SINT32_NV'
+--
+--     -   'COMPONENT_TYPE_SINT64_NV'
+--
+--     -   'COMPONENT_TYPE_SINT8_NV'
+--
+--     -   'COMPONENT_TYPE_UINT16_NV'
+--
+--     -   'COMPONENT_TYPE_UINT32_NV'
+--
+--     -   'COMPONENT_TYPE_UINT64_NV'
+--
+--     -   'COMPONENT_TYPE_UINT8_NV'
+--
+-- -   Extending 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ScopeKHR':
+--
+--     -   'SCOPE_DEVICE_NV'
+--
+--     -   'SCOPE_QUEUE_FAMILY_NV'
+--
+--     -   'SCOPE_SUBGROUP_NV'
+--
+--     -   'SCOPE_WORKGROUP_NV'
+--
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV'
@@ -145,36 +183,34 @@
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_cooperative_matrix  ( getPhysicalDeviceCooperativeMatrixPropertiesNV
+                                                   , pattern SCOPE_DEVICE_NV
+                                                   , pattern SCOPE_WORKGROUP_NV
+                                                   , pattern SCOPE_SUBGROUP_NV
+                                                   , pattern SCOPE_QUEUE_FAMILY_NV
+                                                   , pattern COMPONENT_TYPE_FLOAT16_NV
+                                                   , pattern COMPONENT_TYPE_FLOAT32_NV
+                                                   , pattern COMPONENT_TYPE_FLOAT64_NV
+                                                   , pattern COMPONENT_TYPE_SINT8_NV
+                                                   , pattern COMPONENT_TYPE_SINT16_NV
+                                                   , pattern COMPONENT_TYPE_SINT32_NV
+                                                   , pattern COMPONENT_TYPE_SINT64_NV
+                                                   , pattern COMPONENT_TYPE_UINT8_NV
+                                                   , pattern COMPONENT_TYPE_UINT16_NV
+                                                   , pattern COMPONENT_TYPE_UINT32_NV
+                                                   , pattern COMPONENT_TYPE_UINT64_NV
                                                    , PhysicalDeviceCooperativeMatrixFeaturesNV(..)
                                                    , PhysicalDeviceCooperativeMatrixPropertiesNV(..)
                                                    , CooperativeMatrixPropertiesNV(..)
-                                                   , ScopeNV( SCOPE_DEVICE_NV
-                                                            , SCOPE_WORKGROUP_NV
-                                                            , SCOPE_SUBGROUP_NV
-                                                            , SCOPE_QUEUE_FAMILY_NV
-                                                            , ..
-                                                            )
-                                                   , ComponentTypeNV( COMPONENT_TYPE_FLOAT16_NV
-                                                                    , COMPONENT_TYPE_FLOAT32_NV
-                                                                    , COMPONENT_TYPE_FLOAT64_NV
-                                                                    , COMPONENT_TYPE_SINT8_NV
-                                                                    , COMPONENT_TYPE_SINT16_NV
-                                                                    , COMPONENT_TYPE_SINT32_NV
-                                                                    , COMPONENT_TYPE_SINT64_NV
-                                                                    , COMPONENT_TYPE_UINT8_NV
-                                                                    , COMPONENT_TYPE_UINT16_NV
-                                                                    , COMPONENT_TYPE_UINT32_NV
-                                                                    , COMPONENT_TYPE_UINT64_NV
-                                                                    , ..
-                                                                    )
+                                                   , ScopeNV
+                                                   , ComponentTypeNV
                                                    , NV_COOPERATIVE_MATRIX_SPEC_VERSION
                                                    , pattern NV_COOPERATIVE_MATRIX_SPEC_VERSION
                                                    , NV_COOPERATIVE_MATRIX_EXTENSION_NAME
                                                    , pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME
+                                                   , ScopeKHR(..)
+                                                   , ComponentTypeKHR(..)
                                                    ) where
 
-import Vulkan.Internal.Utils (enumReadPrec)
-import Vulkan.Internal.Utils (enumShowsPrec)
 import Vulkan.Internal.Utils (traceAroundEvent)
 import Control.Exception.Base (bracket)
 import Control.Monad (unless)
@@ -187,7 +223,6 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
-import GHC.Show (showsPrec)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
@@ -195,7 +230,6 @@
 import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct (ToCStruct)
 import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
 import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
@@ -207,11 +241,8 @@
 import GHC.Generics (Generic)
 import GHC.IO.Exception (IOErrorType(..))
 import GHC.IO.Exception (IOException(..))
-import Data.Int (Int32)
 import Foreign.Ptr (FunPtr)
 import Foreign.Ptr (Ptr)
-import GHC.Read (Read(readPrec))
-import GHC.Show (Show(showsPrec))
 import Data.Word (Word32)
 import Data.Kind (Type)
 import Control.Monad.Trans.Cont (ContT(..))
@@ -221,6 +252,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR)
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixPropertiesNV))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -228,13 +260,31 @@
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR)
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Exception (VulkanException(..))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_FLOAT16_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_FLOAT32_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_FLOAT64_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT16_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT32_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT64_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT8_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT16_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT32_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT64_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT8_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_DEVICE_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_QUEUE_FAMILY_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_SUBGROUP_KHR))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_WORKGROUP_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(..))
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(..))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
@@ -322,6 +372,66 @@
   pure $ ((r'), pProperties')
 
 
+-- No documentation found for TopLevel "VK_SCOPE_DEVICE_NV"
+pattern SCOPE_DEVICE_NV = SCOPE_DEVICE_KHR
+
+
+-- No documentation found for TopLevel "VK_SCOPE_WORKGROUP_NV"
+pattern SCOPE_WORKGROUP_NV = SCOPE_WORKGROUP_KHR
+
+
+-- No documentation found for TopLevel "VK_SCOPE_SUBGROUP_NV"
+pattern SCOPE_SUBGROUP_NV = SCOPE_SUBGROUP_KHR
+
+
+-- No documentation found for TopLevel "VK_SCOPE_QUEUE_FAMILY_NV"
+pattern SCOPE_QUEUE_FAMILY_NV = SCOPE_QUEUE_FAMILY_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_FLOAT16_NV"
+pattern COMPONENT_TYPE_FLOAT16_NV = COMPONENT_TYPE_FLOAT16_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_FLOAT32_NV"
+pattern COMPONENT_TYPE_FLOAT32_NV = COMPONENT_TYPE_FLOAT32_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_FLOAT64_NV"
+pattern COMPONENT_TYPE_FLOAT64_NV = COMPONENT_TYPE_FLOAT64_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT8_NV"
+pattern COMPONENT_TYPE_SINT8_NV = COMPONENT_TYPE_SINT8_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT16_NV"
+pattern COMPONENT_TYPE_SINT16_NV = COMPONENT_TYPE_SINT16_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT32_NV"
+pattern COMPONENT_TYPE_SINT32_NV = COMPONENT_TYPE_SINT32_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT64_NV"
+pattern COMPONENT_TYPE_SINT64_NV = COMPONENT_TYPE_SINT64_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT8_NV"
+pattern COMPONENT_TYPE_UINT8_NV = COMPONENT_TYPE_UINT8_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT16_NV"
+pattern COMPONENT_TYPE_UINT16_NV = COMPONENT_TYPE_UINT16_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT32_NV"
+pattern COMPONENT_TYPE_UINT32_NV = COMPONENT_TYPE_UINT32_KHR
+
+
+-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT64_NV"
+pattern COMPONENT_TYPE_UINT64_NV = COMPONENT_TYPE_UINT64_KHR
+
+
 -- | VkPhysicalDeviceCooperativeMatrixFeaturesNV - Structure describing
 -- cooperative matrix features that can be supported by an implementation
 --
@@ -349,10 +459,10 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceCooperativeMatrixFeaturesNV = PhysicalDeviceCooperativeMatrixFeaturesNV
-  { -- | #features-cooperativeMatrix# @cooperativeMatrix@ indicates that the
+  { -- | #features-cooperativeMatrix-NV# @cooperativeMatrix@ indicates that the
     -- implementation supports the @CooperativeMatrixNV@ SPIR-V capability.
     cooperativeMatrix :: Bool
-  , -- | #features-cooperativeMatrixRobustBufferAccess#
+  , -- | #features-cooperativeMatrixRobustBufferAccess-NV#
     -- @cooperativeMatrixRobustBufferAccess@ indicates that the implementation
     -- supports robust buffer access for SPIR-V @OpCooperativeMatrixLoadNV@ and
     -- @OpCooperativeMatrixStoreNV@ instructions.
@@ -422,7 +532,7 @@
 -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceCooperativeMatrixPropertiesNV = PhysicalDeviceCooperativeMatrixPropertiesNV
-  { -- | #limits-cooperativeMatrixSupportedStages#
+  { -- | #limits-cooperativeMatrixSupportedStages-NV#
     -- @cooperativeMatrixSupportedStages@ is a bitfield of
     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing
     -- the shader stages that cooperative matrix instructions are supported in.
@@ -588,167 +698,13 @@
            zero
 
 
--- | VkScopeNV - Specify SPIR-V scope
---
--- = Description
---
--- All enum values match the corresponding SPIR-V value.
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix VK_NV_cooperative_matrix>,
--- 'CooperativeMatrixPropertiesNV'
-newtype ScopeNV = ScopeNV Int32
-  deriving newtype (Eq, Ord, Storable, Zero)
+-- No documentation found for TopLevel "VkScopeNV"
+type ScopeNV = ScopeKHR
 
--- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error
 
--- | 'SCOPE_DEVICE_NV' corresponds to SPIR-V 'Vulkan.Core10.Handles.Device'
--- scope.
-pattern SCOPE_DEVICE_NV = ScopeNV 1
-
--- | 'SCOPE_WORKGROUP_NV' corresponds to SPIR-V @Workgroup@ scope.
-pattern SCOPE_WORKGROUP_NV = ScopeNV 2
-
--- | 'SCOPE_SUBGROUP_NV' corresponds to SPIR-V @Subgroup@ scope.
-pattern SCOPE_SUBGROUP_NV = ScopeNV 3
-
--- | 'SCOPE_QUEUE_FAMILY_NV' corresponds to SPIR-V @QueueFamily@ scope.
-pattern SCOPE_QUEUE_FAMILY_NV = ScopeNV 5
-
-{-# COMPLETE
-  SCOPE_DEVICE_NV
-  , SCOPE_WORKGROUP_NV
-  , SCOPE_SUBGROUP_NV
-  , SCOPE_QUEUE_FAMILY_NV ::
-    ScopeNV
-  #-}
-
-conNameScopeNV :: String
-conNameScopeNV = "ScopeNV"
-
-enumPrefixScopeNV :: String
-enumPrefixScopeNV = "SCOPE_"
-
-showTableScopeNV :: [(ScopeNV, String)]
-showTableScopeNV =
-  [ (SCOPE_DEVICE_NV, "DEVICE_NV")
-  , (SCOPE_WORKGROUP_NV, "WORKGROUP_NV")
-  , (SCOPE_SUBGROUP_NV, "SUBGROUP_NV")
-  , (SCOPE_QUEUE_FAMILY_NV, "QUEUE_FAMILY_NV")
-  ]
-
-instance Show ScopeNV where
-  showsPrec =
-    enumShowsPrec
-      enumPrefixScopeNV
-      showTableScopeNV
-      conNameScopeNV
-      (\(ScopeNV x) -> x)
-      (showsPrec 11)
-
-instance Read ScopeNV where
-  readPrec =
-    enumReadPrec
-      enumPrefixScopeNV
-      showTableScopeNV
-      conNameScopeNV
-      ScopeNV
-
--- | VkComponentTypeNV - Specify SPIR-V cooperative matrix component type
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix VK_NV_cooperative_matrix>,
--- 'CooperativeMatrixPropertiesNV'
-newtype ComponentTypeNV = ComponentTypeNV Int32
-  deriving newtype (Eq, Ord, Storable, Zero)
-
--- | 'COMPONENT_TYPE_FLOAT16_NV' corresponds to SPIR-V @OpTypeFloat@ 16.
-pattern COMPONENT_TYPE_FLOAT16_NV = ComponentTypeNV 0
-
--- | 'COMPONENT_TYPE_FLOAT32_NV' corresponds to SPIR-V @OpTypeFloat@ 32.
-pattern COMPONENT_TYPE_FLOAT32_NV = ComponentTypeNV 1
-
--- | 'COMPONENT_TYPE_FLOAT64_NV' corresponds to SPIR-V @OpTypeFloat@ 64.
-pattern COMPONENT_TYPE_FLOAT64_NV = ComponentTypeNV 2
-
--- | 'COMPONENT_TYPE_SINT8_NV' corresponds to SPIR-V @OpTypeInt@ 8 1.
-pattern COMPONENT_TYPE_SINT8_NV = ComponentTypeNV 3
-
--- | 'COMPONENT_TYPE_SINT16_NV' corresponds to SPIR-V @OpTypeInt@ 16 1.
-pattern COMPONENT_TYPE_SINT16_NV = ComponentTypeNV 4
-
--- | 'COMPONENT_TYPE_SINT32_NV' corresponds to SPIR-V @OpTypeInt@ 32 1.
-pattern COMPONENT_TYPE_SINT32_NV = ComponentTypeNV 5
-
--- | 'COMPONENT_TYPE_SINT64_NV' corresponds to SPIR-V @OpTypeInt@ 64 1.
-pattern COMPONENT_TYPE_SINT64_NV = ComponentTypeNV 6
-
--- | 'COMPONENT_TYPE_UINT8_NV' corresponds to SPIR-V @OpTypeInt@ 8 0.
-pattern COMPONENT_TYPE_UINT8_NV = ComponentTypeNV 7
-
--- | 'COMPONENT_TYPE_UINT16_NV' corresponds to SPIR-V @OpTypeInt@ 16 0.
-pattern COMPONENT_TYPE_UINT16_NV = ComponentTypeNV 8
-
--- | 'COMPONENT_TYPE_UINT32_NV' corresponds to SPIR-V @OpTypeInt@ 32 0.
-pattern COMPONENT_TYPE_UINT32_NV = ComponentTypeNV 9
-
--- | 'COMPONENT_TYPE_UINT64_NV' corresponds to SPIR-V @OpTypeInt@ 64 0.
-pattern COMPONENT_TYPE_UINT64_NV = ComponentTypeNV 10
-
-{-# COMPLETE
-  COMPONENT_TYPE_FLOAT16_NV
-  , COMPONENT_TYPE_FLOAT32_NV
-  , COMPONENT_TYPE_FLOAT64_NV
-  , COMPONENT_TYPE_SINT8_NV
-  , COMPONENT_TYPE_SINT16_NV
-  , COMPONENT_TYPE_SINT32_NV
-  , COMPONENT_TYPE_SINT64_NV
-  , COMPONENT_TYPE_UINT8_NV
-  , COMPONENT_TYPE_UINT16_NV
-  , COMPONENT_TYPE_UINT32_NV
-  , COMPONENT_TYPE_UINT64_NV ::
-    ComponentTypeNV
-  #-}
-
-conNameComponentTypeNV :: String
-conNameComponentTypeNV = "ComponentTypeNV"
-
-enumPrefixComponentTypeNV :: String
-enumPrefixComponentTypeNV = "COMPONENT_TYPE_"
-
-showTableComponentTypeNV :: [(ComponentTypeNV, String)]
-showTableComponentTypeNV =
-  [ (COMPONENT_TYPE_FLOAT16_NV, "FLOAT16_NV")
-  , (COMPONENT_TYPE_FLOAT32_NV, "FLOAT32_NV")
-  , (COMPONENT_TYPE_FLOAT64_NV, "FLOAT64_NV")
-  , (COMPONENT_TYPE_SINT8_NV, "SINT8_NV")
-  , (COMPONENT_TYPE_SINT16_NV, "SINT16_NV")
-  , (COMPONENT_TYPE_SINT32_NV, "SINT32_NV")
-  , (COMPONENT_TYPE_SINT64_NV, "SINT64_NV")
-  , (COMPONENT_TYPE_UINT8_NV, "UINT8_NV")
-  , (COMPONENT_TYPE_UINT16_NV, "UINT16_NV")
-  , (COMPONENT_TYPE_UINT32_NV, "UINT32_NV")
-  , (COMPONENT_TYPE_UINT64_NV, "UINT64_NV")
-  ]
-
-instance Show ComponentTypeNV where
-  showsPrec =
-    enumShowsPrec
-      enumPrefixComponentTypeNV
-      showTableComponentTypeNV
-      conNameComponentTypeNV
-      (\(ComponentTypeNV x) -> x)
-      (showsPrec 11)
+-- No documentation found for TopLevel "VkComponentTypeNV"
+type ComponentTypeNV = ComponentTypeKHR
 
-instance Read ComponentTypeNV where
-  readPrec =
-    enumReadPrec
-      enumPrefixComponentTypeNV
-      showTableComponentTypeNV
-      conNameComponentTypeNV
-      ComponentTypeNV
 
 type NV_COOPERATIVE_MATRIX_SPEC_VERSION = 1
 
diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -93,6 +96,41 @@
 -- -   'NV_COOPERATIVE_MATRIX_EXTENSION_NAME'
 --
 -- -   'NV_COOPERATIVE_MATRIX_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR':
+--
+--     -   'COMPONENT_TYPE_FLOAT16_NV'
+--
+--     -   'COMPONENT_TYPE_FLOAT32_NV'
+--
+--     -   'COMPONENT_TYPE_FLOAT64_NV'
+--
+--     -   'COMPONENT_TYPE_SINT16_NV'
+--
+--     -   'COMPONENT_TYPE_SINT32_NV'
+--
+--     -   'COMPONENT_TYPE_SINT64_NV'
+--
+--     -   'COMPONENT_TYPE_SINT8_NV'
+--
+--     -   'COMPONENT_TYPE_UINT16_NV'
+--
+--     -   'COMPONENT_TYPE_UINT32_NV'
+--
+--     -   'COMPONENT_TYPE_UINT64_NV'
+--
+--     -   'COMPONENT_TYPE_UINT8_NV'
+--
+-- -   Extending 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ScopeKHR':
+--
+--     -   'SCOPE_DEVICE_NV'
+--
+--     -   'SCOPE_QUEUE_FAMILY_NV'
+--
+--     -   'SCOPE_SUBGROUP_NV'
+--
+--     -   'SCOPE_WORKGROUP_NV'
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
diff --git a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs
--- a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs
+++ b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -329,8 +332,8 @@
 --     is non-sparse then it /must/ be bound completely and contiguously to
 --     a single 'Vulkan.Core10.Handles.DeviceMemory' object
 --
--- -   [[VUID-{refpage}-dstImage-07973]] @dstImage@ /must/ have a sample
---     count equal to
+-- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07973# @dstImage@
+--     /must/ have a sample count equal to
 --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'
 --
 -- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667#
@@ -341,17 +344,24 @@
 -- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669#
 --     @dstImageLayout@ /must/ be
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or
---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
 -- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-mipLevel-07670# The specified
 --     @mipLevel@ of each region /must/ be less than the @mipLevels@
 --     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@
 --     was created
 --
--- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-baseArrayLayer-07671# The
---     specified @baseArrayLayer@ + @layerCount@ of each region /must/ be
---     less than or equal to the @arrayLayers@ specified in
+-- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-09244# If the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>
+--     feature is not enabled, @layerCount@ /must/ not be
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'
+--
+-- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764# If
+--     @layerCount@ is not
+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the specified
+--     @baseArrayLayer@ + @layerCount@ of each region /must/ be less than
+--     or equal to the @arrayLayers@ specified in
 --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created
 --
 -- -   #VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672# The
diff --git a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs
--- a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs
+++ b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -56,13 +59,13 @@
 --     coord × dim. See
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.
 --
--- -   Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉
+-- -   Calculation of the next higher LOD size goes according to ⌈dim \/ 2⌉
 --     rather than ⌊dim \/ 2⌋. See
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>.
 --
 -- -   The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images.
 --     See
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>.
 --
 -- This image organization is designed to facilitate a system like Ptex
 -- with separate textures for each face of a subdivision or polygon mesh.
@@ -70,7 +73,7 @@
 -- maintain continuity between adjacent patches by duplicating values along
 -- shared edges. Additionally, using the modified mipmapping logic along
 -- with texture dimensions of the form 2n+1 allows continuity across shared
--- edges even if the adjacent patches use different level-of-detail values.
+-- edges even if the adjacent patches use different LOD values.
 --
 -- == New Structures
 --
diff --git a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -56,13 +59,13 @@
 --     coord × dim. See
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.
 --
--- -   Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉
+-- -   Calculation of the next higher LOD size goes according to ⌈dim \/ 2⌉
 --     rather than ⌊dim \/ 2⌋. See
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>.
 --
 -- -   The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images.
 --     See
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizing Image Mip Level Sizing>.
 --
 -- This image organization is designed to facilitate a system like Ptex
 -- with separate textures for each face of a subdivision or polygon mesh.
@@ -70,7 +73,7 @@
 -- maintain continuity between adjacent patches by duplicating values along
 -- shared edges. Additionally, using the modified mipmapping logic along
 -- with texture dimensions of the form 2n+1 allows continuity across shared
--- edges even if the adjacent patches use different level-of-detail values.
+-- edges even if the adjacent patches use different LOD values.
 --
 -- == New Structures
 --
diff --git a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs
--- a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs
+++ b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Deprecated/ by @VK_KHR_dedicated_allocation@ extension
 --
 --         -   Which in turn was /promoted/ to
@@ -93,15 +96,15 @@
 -- >
 -- >     VkDedicatedAllocationImageCreateInfoNV dedicatedImageInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,            // sType
--- >         NULL,                                                                   // pNext
--- >         VK_TRUE,                                                                // dedicatedAllocation
+-- >         .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
+-- >         .pNext = NULL,
+-- >         .dedicatedAllocation = VK_TRUE,
 -- >     };
 -- >
 -- >     VkImageCreateInfo imageCreateInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // sType
--- >         &dedicatedImageInfo                     // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+-- >         .pNext = &dedicatedImageInfo
 -- >         // Other members set as usual
 -- >     };
 -- >
@@ -109,7 +112,7 @@
 -- >     VkResult result = vkCreateImage(
 -- >         device,
 -- >         &imageCreateInfo,
--- >         NULL,                       // pAllocator
+-- >         NULL,               // pAllocator
 -- >         &image);
 -- >
 -- >     VkMemoryRequirements memoryRequirements;
@@ -123,25 +126,25 @@
 -- >
 -- >     VkDedicatedAllocationMemoryAllocateInfoNV dedicatedInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,             // sType
--- >         NULL,                                                                       // pNext
--- >         image,                                                                      // image
--- >         VK_NULL_HANDLE,                                                             // buffer
+-- >         .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
+-- >         .pNext = NULL,
+-- >         .image = image,
+-- >         .buffer = VK_NULL_HANDLE,
 -- >     };
 -- >
 -- >     VkMemoryAllocateInfo memoryAllocateInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,                 // sType
--- >         &dedicatedInfo,                                         // pNext
--- >         memoryRequirements.size,                                // allocationSize
--- >         FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), // memoryTypeIndex
+-- >         .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
+-- >         .pNext = &dedicatedInfo,
+-- >         .allocationSize = memoryRequirements.size,
+-- >         .memoryTypeIndex = FindMemoryTypeIndex(memoryRequirements.memoryTypeBits),
 -- >     };
 -- >
 -- >     VkDeviceMemory memory;
 -- >     vkAllocateMemory(
 -- >         device,
 -- >         &memoryAllocateInfo,
--- >         NULL,                       // pAllocator
+-- >         NULL,               // pAllocator
 -- >         &memory);
 -- >
 -- >     // Bind the image to the memory
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot
@@ -17,8 +17,11 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
 --
+-- [__Extension and Version Dependencies__; __Deprecation State__]
+--
 --     -   /Deprecated/ by @VK_KHR_dedicated_allocation@ extension
 --
 --         -   Which in turn was /promoted/ to
@@ -93,15 +96,15 @@
 -- >
 -- >     VkDedicatedAllocationImageCreateInfoNV dedicatedImageInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,            // sType
--- >         NULL,                                                                   // pNext
--- >         VK_TRUE,                                                                // dedicatedAllocation
+-- >         .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
+-- >         .pNext = NULL,
+-- >         .dedicatedAllocation = VK_TRUE,
 -- >     };
 -- >
 -- >     VkImageCreateInfo imageCreateInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // sType
--- >         &dedicatedImageInfo                     // pNext
+-- >         .sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+-- >         .pNext = &dedicatedImageInfo
 -- >         // Other members set as usual
 -- >     };
 -- >
@@ -109,7 +112,7 @@
 -- >     VkResult result = vkCreateImage(
 -- >         device,
 -- >         &imageCreateInfo,
--- >         NULL,                       // pAllocator
+-- >         NULL,               // pAllocator
 -- >         &image);
 -- >
 -- >     VkMemoryRequirements memoryRequirements;
@@ -123,25 +126,25 @@
 -- >
 -- >     VkDedicatedAllocationMemoryAllocateInfoNV dedicatedInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,             // sType
--- >         NULL,                                                                       // pNext
--- >         image,                                                                      // image
--- >         VK_NULL_HANDLE,                                                             // buffer
+-- >         .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
+-- >         .pNext = NULL,
+-- >         .image = image,
+-- >         .buffer = VK_NULL_HANDLE,
 -- >     };
 -- >
 -- >     VkMemoryAllocateInfo memoryAllocateInfo =
 -- >     {
--- >         VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,                 // sType
--- >         &dedicatedInfo,                                         // pNext
--- >         memoryRequirements.size,                                // allocationSize
--- >         FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), // memoryTypeIndex
+-- >         .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
+-- >         .pNext = &dedicatedInfo,
+-- >         .allocationSize = memoryRequirements.size,
+-- >         .memoryTypeIndex = FindMemoryTypeIndex(memoryRequirements.memoryTypeBits),
 -- >     };
 -- >
 -- >     VkDeviceMemory memory;
 -- >     vkAllocateMemory(
 -- >         device,
 -- >         &memoryAllocateInfo,
--- >         NULL,                       // pAllocator
+-- >         NULL,               // pAllocator
 -- >         &memory);
 -- >
 -- >     // Bind the image to the memory
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation VK_KHR_dedicated_allocation>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation VK_KHR_dedicated_allocation>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs
@@ -0,0 +1,219 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_descriptor_pool_overallocation - device extension
+--
+-- == VK_NV_descriptor_pool_overallocation
+--
+-- [__Name String__]
+--     @VK_NV_descriptor_pool_overallocation@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     547
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_descriptor_pool_overallocation] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_NV_descriptor_pool_overallocation extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-08-30
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+-- == Description
+--
+-- There are scenarios where the application does not know ahead of time
+-- how many descriptor sets it may need to allocate from a descriptor pool,
+-- or how many descriptors of any of the descriptor types it may need to
+-- allocate from the descriptor pool.
+--
+-- This extension gives applications the ability to request the
+-- implementation allow more sets or descriptors to be allocated than
+-- initially specified at descriptor pool creation time, subject to
+-- available resources.
+--
+-- The
+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+-- flag lets the application allocate more than
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@maxSets@
+-- descriptor sets, and the
+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV'
+-- lets the application allocate more descriptors than initially specified
+-- by 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize'::@descriptorCount@
+-- for any descriptor types.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME'
+--
+-- -   'NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV'
+--
+--     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-08-30 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_descriptor_pool_overallocation Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation  ( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV(..)
+                                                               , NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION
+                                                               , pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION
+                                                               , NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME
+                                                               , pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME
+                                                               ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV))
+-- | VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV - Structure
+-- describing feature to allow descriptor pool overallocation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' 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. 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' /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_NV_descriptor_pool_overallocation VK_NV_descriptor_pool_overallocation>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+  { -- | #features-descriptorPoolOverallocation# @descriptorPoolOverallocation@
+    -- indicates that the implementation allows the application to opt into
+    -- descriptor pool overallocation by creating the descriptor pool with
+    -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+    -- and\/or
+    -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV'
+    -- flags.
+    descriptorPoolOverallocation :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+
+instance ToCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDescriptorPoolOverallocationFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (descriptorPoolOverallocation))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where
+  peekCStruct p = do
+    descriptorPoolOverallocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+             (bool32ToBool descriptorPoolOverallocation)
+
+instance Storable PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where
+  zero = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+           zero
+
+
+type NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION"
+pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION = 1
+
+
+type NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME = "VK_NV_descriptor_pool_overallocation"
+
+-- No documentation found for TopLevel "VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME"
+pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME = "VK_NV_descriptor_pool_overallocation"
+
diff --git a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot
@@ -0,0 +1,116 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_descriptor_pool_overallocation - device extension
+--
+-- == VK_NV_descriptor_pool_overallocation
+--
+-- [__Name String__]
+--     @VK_NV_descriptor_pool_overallocation@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     547
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Piers Daniell
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_descriptor_pool_overallocation] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_NV_descriptor_pool_overallocation extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-08-30
+--
+-- [__Contributors__]
+--
+--     -   Jeff Bolz, NVIDIA
+--
+-- == Description
+--
+-- There are scenarios where the application does not know ahead of time
+-- how many descriptor sets it may need to allocate from a descriptor pool,
+-- or how many descriptors of any of the descriptor types it may need to
+-- allocate from the descriptor pool.
+--
+-- This extension gives applications the ability to request the
+-- implementation allow more sets or descriptors to be allocated than
+-- initially specified at descriptor pool creation time, subject to
+-- available resources.
+--
+-- The
+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+-- flag lets the application allocate more than
+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@maxSets@
+-- descriptor sets, and the
+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV'
+-- lets the application allocate more descriptors than initially specified
+-- by 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize'::@descriptorCount@
+-- for any descriptor types.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME'
+--
+-- -   'NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV'
+--
+--     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-08-30 (Piers Daniell)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_descriptor_pool_overallocation Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation  (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+
+instance ToCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+instance Show PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+
+instance FromCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
+
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
@@ -17,5937 +17,6751 @@
 -- [__Revision__]
 --     3
 --
--- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
---
--- [__Contact__]
---
---     -   Christoph Kubisch
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_device_generated_commands] @pixeljetstream%0A*Here describe the issue or question you have about the VK_NV_device_generated_commands extension* >
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2020-02-20
---
--- [__Interactions and External Dependencies__]
---
---     -   This extension requires Vulkan 1.1
---
---     -   This extension requires @VK_EXT_buffer_device_address@ or
---         @VK_KHR_buffer_device_address@ or Vulkan 1.2 for the ability to
---         bind vertex and index buffers on the device.
---
---     -   This extension interacts with @VK_NV_mesh_shader@. If the latter
---         extension is not supported, remove the command token to initiate
---         mesh tasks drawing in this extension.
---
--- [__Contributors__]
---
---     -   Christoph Kubisch, NVIDIA
---
---     -   Pierre Boudier, NVIDIA
---
---     -   Jeff Bolz, NVIDIA
---
---     -   Eric Werness, NVIDIA
---
---     -   Yuriy O’Donnell, Epic Games
---
---     -   Baldur Karlsson, Valve
---
---     -   Mathias Schott, NVIDIA
---
---     -   Tyson Smith, NVIDIA
---
---     -   Ingo Esser, NVIDIA
---
--- == Description
---
--- This extension allows the device to generate a number of critical
--- graphics commands for command buffers.
---
--- When rendering a large number of objects, the device can be leveraged to
--- implement a number of critical functions, like updating matrices, or
--- implementing occlusion culling, frustum culling, front to back sorting,
--- etc. Implementing those on the device does not require any special
--- extension, since an application is free to define its own data
--- structures, and just process them using shaders.
---
--- However, if the application desires to quickly kick off the rendering of
--- the final stream of objects, then unextended Vulkan forces the
--- application to read back the processed stream and issue graphics command
--- from the host. For very large scenes, the synchronization overhead and
--- cost to generate the command buffer can become the bottleneck. This
--- extension allows an application to generate a device side stream of
--- state changes and commands, and convert it efficiently into a command
--- buffer without having to read it back to the host.
---
--- Furthermore, it allows incremental changes to such command buffers by
--- manipulating only partial sections of a command stream — for example
--- pipeline bindings. Unextended Vulkan requires re-creation of entire
--- command buffers in such a scenario, or updates synchronized on the host.
---
--- The intended usage for this extension is for the application to:
---
--- -   create 'Vulkan.Core10.Handles.Buffer' objects and retrieve physical
---     addresses from them via
---     'Vulkan.Extensions.VK_EXT_buffer_device_address.getBufferDeviceAddressEXT'
---
--- -   create a graphics pipeline using
---     'GraphicsPipelineShaderGroupsCreateInfoNV' for the ability to change
---     shaders on the device.
---
--- -   create a 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV', which
---     lists the 'IndirectCommandsTokenTypeNV' it wants to dynamically
---     execute as an atomic command sequence. This step likely involves
---     some internal device code compilation, since the intent is for the
---     GPU to generate the command buffer in the pipeline.
---
--- -   fill the input stream buffers with the data for each of the inputs
---     it needs. Each input is an array that will be filled with
---     token-dependent data.
---
--- -   set up a preprocess 'Vulkan.Core10.Handles.Buffer' that uses memory
---     according to the information retrieved via
---     'getGeneratedCommandsMemoryRequirementsNV'.
---
--- -   optionally preprocess the generated content using
---     'cmdPreprocessGeneratedCommandsNV', for example on an asynchronous
---     compute queue, or for the purpose of re-using the data in multiple
---     executions.
---
--- -   call 'cmdExecuteGeneratedCommandsNV' to create and execute the
---     actual device commands for all sequences based on the inputs
---     provided.
---
--- For each draw in a sequence, the following can be specified:
---
--- -   a different shader group
---
--- -   a number of vertex buffer bindings
---
--- -   a different index buffer, with an optional dynamic offset and index
---     type
---
--- -   a number of different push constants
---
--- -   a flag that encodes the primitive winding
---
--- While the GPU can be faster than a CPU to generate the commands, it will
--- not happen asynchronously to the device, therefore the primary use-case
--- is generating “less” total work (occlusion culling, classification to
--- use specialized shaders, etc.).
---
--- == New Object Types
---
--- -   'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'
---
--- == New Commands
---
--- -   'cmdBindPipelineShaderGroupNV'
---
--- -   'cmdExecuteGeneratedCommandsNV'
---
--- -   'cmdPreprocessGeneratedCommandsNV'
---
--- -   'createIndirectCommandsLayoutNV'
---
--- -   'destroyIndirectCommandsLayoutNV'
---
--- -   'getGeneratedCommandsMemoryRequirementsNV'
---
--- == New Structures
---
--- -   'BindIndexBufferIndirectCommandNV'
---
--- -   'BindShaderGroupIndirectCommandNV'
---
--- -   'BindVertexBufferIndirectCommandNV'
---
--- -   'GeneratedCommandsInfoNV'
---
--- -   'GeneratedCommandsMemoryRequirementsInfoNV'
---
--- -   'GraphicsShaderGroupCreateInfoNV'
---
--- -   'IndirectCommandsLayoutCreateInfoNV'
---
--- -   'IndirectCommandsLayoutTokenNV'
---
--- -   'IndirectCommandsStreamNV'
---
--- -   'SetStateFlagsIndirectCommandNV'
---
--- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
---
---     -   'GraphicsPipelineShaderGroupsCreateInfoNV'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
---
---     -   'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'
---
--- == New Enums
---
--- -   'IndirectCommandsLayoutUsageFlagBitsNV'
---
--- -   'IndirectCommandsTokenTypeNV'
---
--- -   'IndirectStateFlagBitsNV'
---
--- == New Bitmasks
---
--- -   'IndirectCommandsLayoutUsageFlagsNV'
---
--- -   'IndirectStateFlagsNV'
---
--- == New Enum Constants
---
--- -   'NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME'
---
--- -   'NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
---
---     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
---
---     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'
---
--- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
---
---     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV'
---
--- -   Extending
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
---
--- -   Extending
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
---
---     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV'
---
--- == Issues
---
--- 1) How to name this extension ?
---
--- @VK_NV_device_generated_commands@
---
--- As usual, one of the hardest issues ;)
---
--- Alternatives: @VK_gpu_commands@, @VK_execute_commands@,
--- @VK_device_commands@, @VK_device_execute_commands@, @VK_device_execute@,
--- @VK_device_created_commands@, @VK_device_recorded_commands@,
--- @VK_device_generated_commands@ @VK_indirect_generated_commands@
---
--- 2) Should we use a serial stateful token stream or stateless sequence
--- descriptions?
---
--- Similarly to 'Vulkan.Core10.Handles.Pipeline', fixed layouts have the
--- most likelihood to be cross-vendor adoptable. They also benefit from
--- being processable in parallel. This is a different design choice
--- compared to the serial command stream generated through
--- @GL_NV_command_list@.
---
--- 3) How to name a sequence description?
---
--- @VkIndirectCommandsLayout@ as in the NVX extension predecessor.
---
--- Alternative: @VkGeneratedCommandsLayout@
---
--- 4) Do we want to provide @indirectCommands@ inputs with layout or at
--- @indirectCommands@ time?
---
--- Separate layout from data as Vulkan does. Provide full flexibility for
--- @indirectCommands@.
---
--- 5) Should the input be provided as SoA or AoS?
---
--- Both ways are desirable. AoS can provide portability to other APIs and
--- easier to setup, while SoA allows to update individual inputs in a
--- cache-efficient manner, when others remain static.
---
--- 6) How do we make developers aware of the memory requirements of
--- implementation-dependent data used for the generated commands?
---
--- Make the API explicit and introduce a @preprocess@
--- 'Vulkan.Core10.Handles.Buffer'. Developers have to allocate it using
--- 'getGeneratedCommandsMemoryRequirementsNV'.
---
--- In the NVX version the requirements were hidden implicitly as part of
--- the command buffer reservation process, however as the memory
--- requirements can be substantial, we want to give developers the ability
--- to budget the memory themselves. By lowering the @maxSequencesCount@ the
--- memory consumption can be reduced. Furthermore reuse of the memory is
--- possible, for example for doing explicit preprocessing and execution in
--- a ping-pong fashion.
---
--- The actual buffer size is implementation-dependent and may be zero, i.e.
--- not always required.
---
--- When making use of Graphics Shader Groups, the programs should behave
--- similar with regards to vertex inputs, clipping and culling outputs of
--- the geometry stage, as well as sample shading behavior in fragment
--- shaders, to reduce the amount of the worst-case memory approximation.
---
--- 7) Should we allow additional per-sequence dynamic state changes?
---
--- Yes
---
--- Introduced a lightweight indirect state flag 'IndirectStateFlagBitsNV'.
--- So far only switching front face winding state is exposed. Especially in
--- CAD\/DCC mirrored transforms that require such changes are common, and
--- similar flexibility is given in the ray tracing instance description.
---
--- The flag could be extended further, for example to switch between
--- primitive-lists or -strips, or make other state modifications.
---
--- Furthermore, as new tokens can be added easily, future extension could
--- add the ability to change any
--- 'Vulkan.Core10.Enums.DynamicState.DynamicState'.
---
--- 8) How do we allow re-using already “generated” @indirectCommands@?
---
--- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags
--- data. Set the @isPreprocessed@ to true in
--- 'cmdExecuteGeneratedCommandsNV'.
---
--- 9) Under which conditions is 'cmdExecuteGeneratedCommandsNV' legal?
---
--- It behaves like a regular draw call command.
---
--- 10) Is 'cmdPreprocessGeneratedCommandsNV' copying the input data or
--- referencing it?
---
--- There are multiple implementations possible:
---
--- -   one could have some emulation code that parses the inputs, and
---     generates an output command buffer, therefore copying the inputs.
---
--- -   one could just reference the inputs, and have the processing done in
---     pipe at execution time.
---
--- If the data is mandated to be copied, then it puts a penalty on
--- implementation that could process the inputs directly in pipe. If the
--- data is “referenced”, then it allows both types of implementation.
---
--- The inputs are “referenced”, and /must/ not be modified after the call
--- to 'cmdExecuteGeneratedCommandsNV' has completed.
---
--- 11) Which buffer usage flags are required for the buffers referenced by
--- 'GeneratedCommandsInfoNV' ?
---
--- Reuse existing
--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---
--- -   'GeneratedCommandsInfoNV'::@preprocessBuffer@
---
--- -   'GeneratedCommandsInfoNV'::@sequencesCountBuffer@
---
--- -   'GeneratedCommandsInfoNV'::@sequencesIndexBuffer@
---
--- -   'IndirectCommandsStreamNV'::@buffer@
---
--- 12) In which pipeline stage does the device generated command expansion
--- happen?
---
--- 'cmdPreprocessGeneratedCommandsNV' is treated as if it occurs in a
--- separate logical pipeline from either graphics or compute, and that
--- pipeline only includes
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TOP_OF_PIPE_BIT',
--- a new stage
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV',
--- and
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT'.
--- This new stage has two corresponding new access types,
--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
--- and
--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV',
--- used to synchronize reading the buffer inputs and writing the preprocess
--- memory output.
---
--- The generated output written in the preprocess buffer memory by
--- 'cmdExecuteGeneratedCommandsNV' is considered to be consumed by the
--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
--- pipeline stage.
---
--- Thus, to synchronize from writing the input buffers to preprocessing via
--- 'cmdPreprocessGeneratedCommandsNV', use:
---
--- -   @dstStageMask@ =
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
---
--- -   @dstAccessMask@ =
---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
---
--- To synchronize from 'cmdPreprocessGeneratedCommandsNV' to executing the
--- generated commands by 'cmdExecuteGeneratedCommandsNV', use:
---
--- -   @srcStageMask@ =
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
---
--- -   @srcAccessMask@ =
---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'
---
--- -   @dstStageMask@ =
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
---
--- -   @dstAccessMask@ =
---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'
---
--- When 'cmdExecuteGeneratedCommandsNV' is used with a @isPreprocessed@ of
--- 'Vulkan.Core10.FundamentalTypes.FALSE', the generated commands are
--- implicitly preprocessed, therefore one only needs to synchronize the
--- inputs via:
---
--- -   @dstStageMask@ =
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
---
--- -   @dstAccessMask@ =
---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'
---
--- 13) What if most token data is “static”, but we frequently want to
--- render a subsection?
---
--- Added “sequencesIndexBuffer”. This allows to easier sort and filter what
--- should actually be executed.
---
--- 14) What are the changes compared to the previous NVX extension?
---
--- -   Compute dispatch support was removed (was never implemented in
---     drivers). There are different approaches how dispatching from the
---     device should work, hence we defer this to a future extension.
---
--- -   The @ObjectTableNVX@ was replaced by using physical buffer addresses
---     and introducing Shader Groups for the graphics pipeline.
---
--- -   Less state changes are possible overall, but the important
---     operations are still there (reduces complexity of implementation).
---
--- -   The API was redesigned so all inputs must be passed at both
---     preprocessing and execution time (this was implicit in NVX, now it
---     is explicit)
---
--- -   The reservation of intermediate command space is now mandatory and
---     explicit through a preprocess buffer.
---
--- -   The 'IndirectStateFlagBitsNV' were introduced
---
--- 15) When porting from other APIs, their indirect buffers may use
--- different enums, for example for index buffer types. How to solve this?
---
--- Added “pIndexTypeValues” to map custom @uint32_t@ values to
--- corresponding 'Vulkan.Core10.Enums.IndexType.IndexType'.
---
--- 16) Do we need more shader group state overrides?
---
--- The NVX version allowed all PSO states to be different, however as the
--- goal is not to replace all state setup, but focus on highly-frequent
--- state changes for drawing lots of objects, we reduced the amount of
--- state overrides. Especially VkPipelineLayout as well as VkRenderPass
--- configuration should be left static, the rest is still open for
--- discussion.
---
--- The current focus is just to allow VertexInput changes as well as
--- shaders, while all shader groups use the same shader stages.
---
--- Too much flexibility will increase the test coverage requirement as
--- well. However, further extensions could allow more dynamic state as
--- well.
---
--- 17) Do we need more detailed physical device feature queries\/enables?
---
--- An EXT version would need detailed implementor feedback to come up with
--- a good set of features. Please contact us if you are interested, we are
--- happy to make more features optional, or add further restrictions to
--- reduce the minimum feature set of an EXT.
---
--- 18) Is there an interaction with VK_KHR_pipeline_library planned?
---
--- Yes, a future version of this extension will detail the interaction,
--- once VK_KHR_pipeline_library is no longer provisional.
---
--- == Example Code
---
--- Open-Source samples illustrating the usage of the extension can be found
--- at the following location (may not yet exist at time of writing):
---
--- <https://github.com/nvpro-samples/vk_device_generated_cmds>
---
--- == Version History
---
--- -   Revision 1, 2020-02-20 (Christoph Kubisch)
---
---     -   Initial version
---
--- -   Revision 2, 2020-03-09 (Christoph Kubisch)
---
---     -   Remove VK_EXT_debug_report interactions
---
--- -   Revision 3, 2020-03-09 (Christoph Kubisch)
---
---     -   Fix naming VkPhysicalDeviceGenerated to
---         VkPhysicalDeviceDeviceGenerated
---
--- == See Also
---
--- 'BindIndexBufferIndirectCommandNV', 'BindShaderGroupIndirectCommandNV',
--- 'BindVertexBufferIndirectCommandNV', 'GeneratedCommandsInfoNV',
--- 'GeneratedCommandsMemoryRequirementsInfoNV',
--- 'GraphicsPipelineShaderGroupsCreateInfoNV',
--- 'GraphicsShaderGroupCreateInfoNV', 'IndirectCommandsLayoutCreateInfoNV',
--- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV',
--- 'IndirectCommandsLayoutTokenNV',
--- 'IndirectCommandsLayoutUsageFlagBitsNV',
--- 'IndirectCommandsLayoutUsageFlagsNV', 'IndirectCommandsStreamNV',
--- 'IndirectCommandsTokenTypeNV', 'IndirectStateFlagBitsNV',
--- 'IndirectStateFlagsNV',
--- 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
--- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',
--- 'SetStateFlagsIndirectCommandNV', 'cmdBindPipelineShaderGroupNV',
--- 'cmdExecuteGeneratedCommandsNV', 'cmdPreprocessGeneratedCommandsNV',
--- 'createIndirectCommandsLayoutNV', 'destroyIndirectCommandsLayoutNV',
--- 'getGeneratedCommandsMemoryRequirementsNV'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>
---
--- This page is a generated document. Fixes and changes should be made to
--- the generator scripts, not directly.
-module Vulkan.Extensions.VK_NV_device_generated_commands  ( cmdExecuteGeneratedCommandsNV
-                                                          , cmdPreprocessGeneratedCommandsNV
-                                                          , cmdBindPipelineShaderGroupNV
-                                                          , getGeneratedCommandsMemoryRequirementsNV
-                                                          , createIndirectCommandsLayoutNV
-                                                          , withIndirectCommandsLayoutNV
-                                                          , destroyIndirectCommandsLayoutNV
-                                                          , PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(..)
-                                                          , PhysicalDeviceDeviceGeneratedCommandsPropertiesNV(..)
-                                                          , GraphicsShaderGroupCreateInfoNV(..)
-                                                          , GraphicsPipelineShaderGroupsCreateInfoNV(..)
-                                                          , BindShaderGroupIndirectCommandNV(..)
-                                                          , BindIndexBufferIndirectCommandNV(..)
-                                                          , BindVertexBufferIndirectCommandNV(..)
-                                                          , SetStateFlagsIndirectCommandNV(..)
-                                                          , IndirectCommandsStreamNV(..)
-                                                          , IndirectCommandsLayoutTokenNV(..)
-                                                          , IndirectCommandsLayoutCreateInfoNV(..)
-                                                          , GeneratedCommandsInfoNV(..)
-                                                          , GeneratedCommandsMemoryRequirementsInfoNV(..)
-                                                          , IndirectCommandsLayoutUsageFlagsNV
-                                                          , IndirectCommandsLayoutUsageFlagBitsNV( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV
-                                                                                                 , INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV
-                                                                                                 , INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
-                                                                                                 , ..
-                                                                                                 )
-                                                          , IndirectStateFlagsNV
-                                                          , IndirectStateFlagBitsNV( INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
-                                                                                   , ..
-                                                                                   )
-                                                          , IndirectCommandsTokenTypeNV( INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
-                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV
-                                                                                       , ..
-                                                                                       )
-                                                          , NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION
-                                                          , pattern NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION
-                                                          , NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
-                                                          , pattern NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
-                                                          , IndirectCommandsLayoutNV(..)
-                                                          ) where
-
-import Data.Bits (Bits)
-import Data.Bits (FiniteBits)
-import Vulkan.Internal.Utils (enumReadPrec)
-import Vulkan.Internal.Utils (enumShowsPrec)
-import Vulkan.Internal.Utils (traceAroundEvent)
-import Control.Exception.Base (bracket)
-import Control.Monad (unless)
-import Control.Monad.IO.Class (liftIO)
-import Foreign.Marshal.Alloc (allocaBytes)
-import Foreign.Marshal.Alloc (callocBytes)
-import Foreign.Marshal.Alloc (free)
-import Foreign.Marshal.Utils (maybePeek)
-import GHC.Base (when)
-import GHC.IO (throwIO)
-import GHC.Ptr (castPtr)
-import GHC.Ptr (nullFunPtr)
-import Foreign.Ptr (nullPtr)
-import Foreign.Ptr (plusPtr)
-import GHC.Show (showString)
-import GHC.Show (showsPrec)
-import Numeric (showHex)
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Cont (evalContT)
-import Data.Vector (generateM)
-import qualified Data.Vector (imapM_)
-import qualified Data.Vector (length)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-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 Data.Int (Int32)
-import Foreign.Ptr (FunPtr)
-import Foreign.Ptr (Ptr)
-import GHC.Read (Read(readPrec))
-import GHC.Show (Show(showsPrec))
-import Data.Word (Word32)
-import Data.Kind (Type)
-import Control.Monad.Trans.Cont (ContT(..))
-import Data.Vector (Vector)
-import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.Core10.FundamentalTypes (bool32ToBool)
-import Vulkan.Core10.FundamentalTypes (boolToBool32)
-import Vulkan.CStruct.Extends (forgetExtensions)
-import Vulkan.CStruct.Extends (peekSomeCStruct)
-import Vulkan.CStruct.Extends (pokeSomeCStruct)
-import Vulkan.CStruct.Extends (withSomeCStruct)
-import Vulkan.NamedType ((:::))
-import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
-import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.Core10.FundamentalTypes (Bool32(..))
-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.Core10.Handles (Device)
-import Vulkan.Core10.Handles (Device(..))
-import Vulkan.Core10.Handles (Device(Device))
-import Vulkan.Core10.FundamentalTypes (DeviceAddress)
-import Vulkan.Dynamic (DeviceCmds(pVkCmdBindPipelineShaderGroupNV))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdExecuteGeneratedCommandsNV))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdPreprocessGeneratedCommandsNV))
-import Vulkan.Dynamic (DeviceCmds(pVkCreateIndirectCommandsLayoutNV))
-import Vulkan.Dynamic (DeviceCmds(pVkDestroyIndirectCommandsLayoutNV))
-import Vulkan.Dynamic (DeviceCmds(pVkGetGeneratedCommandsMemoryRequirementsNV))
-import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct.Extends (Extendss)
-import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Core10.Enums.IndexType (IndexType)
-import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)
-import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV(..))
-import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
-import Vulkan.CStruct.Extends (PeekChain)
-import Vulkan.Core10.Handles (Pipeline)
-import Vulkan.Core10.Handles (Pipeline(..))
-import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
-import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))
-import Vulkan.Core10.Handles (PipelineLayout)
-import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
-import Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)
-import Vulkan.Core10.Pipeline (PipelineVertexInputStateCreateInfo)
-import Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.Core10.Enums.Result (Result)
-import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
-import Vulkan.CStruct.Extends (SomeStruct)
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Exception (VulkanException(..))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV))
-import Vulkan.Core10.Enums.Result (Result(SUCCESS))
-import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV(..))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdExecuteGeneratedCommandsNV
-  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO ()
-
--- | vkCmdExecuteGeneratedCommandsNV - Generate and execute commands on the
--- device
---
--- == Valid Usage
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08600# For each set /n/
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08604# Descriptors in
---     bound descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08608# If a pipeline is
---     bound to the pipeline bind point used by this command, 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-vkCmdExecuteGeneratedCommandsNV-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdExecuteGeneratedCommandsNV-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdExecuteGeneratedCommandsNV-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdExecuteGeneratedCommandsNV-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdExecuteGeneratedCommandsNV-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07831# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07832# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07833# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08617# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08618# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08619# If a shader object
---     that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07834# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08620# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07835# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08621# If a shader object
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07836# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08622# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07837# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08623# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07838# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08624# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07839# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08625# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08626# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07840# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08627# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07841# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08628# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07843# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08629# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07844# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08630# If a shader object
---     is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07845# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08631# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07846# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08632# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07847# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08633# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07848# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08634# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08635# If a shader object
---     is bound to any graphics stage, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08636# If a shader object
---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08637# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07878# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08638# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08639# If a shader object
---     is bound to any graphics stage, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08640# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08641# If a shader object
---     is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08643# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08644# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07880# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07881# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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
---     @rasterizationSamples@ for 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-vkCmdExecuteGeneratedCommandsNV-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
---     @rasterizationSamples@ for 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-vkCmdExecuteGeneratedCommandsNV-pNext-07935# If this command
---     has been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08651# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08652# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08653# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08654# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08657# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08658# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08659# If a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07850# If dynamic state
---     was inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08684# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08685# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08686# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08687# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08688# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08689# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08690# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08693# If there is no
---     bound graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08694# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08695# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08696# If there is no
---     bound graphics pipeline, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08716# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input
---     bindings accessed via vertex input variables declared in the vertex
---     shader entry point’s interface /must/ have either valid or
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04008# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
---     feature is not enabled, all vertex input bindings accessed via
---     vertex input variables declared in the vertex shader entry point’s
---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02721# For a given vertex
---     buffer binding, any attribute data fetched /must/ be entirely
---     contained within the corresponding vertex buffer binding, as
---     described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07842# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
---     dynamic state enabled and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
---     @primitiveTopology@ parameter of
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     /must/ be of the same
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
---     as the pipeline
---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
---     state
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04912# If the bound
---     graphics pipeline was created with both the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     and
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic states enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913# If the bound
---     graphics pipeline was created with the
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
---     dynamic state enabled, but not the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command, and the @pStrides@ parameter of
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
---     /must/ not be @NULL@
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04914# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
---     /must/ have been called in the current command buffer prior to this
---     draw command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
---     dynamic state enabled, then all variables with the @Input@ storage
---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
---     @OpEntryPoint@ /must/ contain a location in
---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04875# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481# 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_TASK_BIT_EXT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908# If
---     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' then
---     'cmdPreprocessGeneratedCommandsNV' /must/ have already been executed
---     on the device, using the same @pGeneratedCommandsInfo@ content as
---     well as the content of the input buffers it references (all except
---     'GeneratedCommandsInfoNV'::@preprocessBuffer@). Furthermore
---     @pGeneratedCommandsInfo@\`s @indirectCommandsLayout@ /must/ have
---     been created with the
---     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' bit set
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909#
---     'GeneratedCommandsInfoNV'::@pipeline@ /must/ match the current bound
---     pipeline at 'GeneratedCommandsInfoNV'::@pipelineBindPoint@
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02910# Transform feedback
---     /must/ not be active
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter#
---     @pGeneratedCommandsInfo@ /must/ be a valid pointer to a valid
---     'GeneratedCommandsInfoNV' structure
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-renderpass# This command
---     /must/ only be called inside of a render pass instance
---
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | Indirection                                                                                                                            |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Handles.CommandBuffer', 'GeneratedCommandsInfoNV'
-cmdExecuteGeneratedCommandsNV :: forall io
-                               . (MonadIO io)
-                              => -- | @commandBuffer@ is the command buffer into which the command is
-                                 -- recorded.
-                                 CommandBuffer
-                              -> -- | @isPreprocessed@ represents whether the input data has already been
-                                 -- preprocessed on the device. If it is
-                                 -- 'Vulkan.Core10.FundamentalTypes.FALSE' this command will implicitly
-                                 -- trigger the preprocessing step, otherwise not.
-                                 ("isPreprocessed" ::: Bool)
-                              -> -- | @pGeneratedCommandsInfo@ is a pointer to a 'GeneratedCommandsInfoNV'
-                                 -- structure containing parameters affecting the generation of commands.
-                                 GeneratedCommandsInfoNV
-                              -> io ()
-cmdExecuteGeneratedCommandsNV commandBuffer
-                                isPreprocessed
-                                generatedCommandsInfo = liftIO . evalContT $ do
-  let vkCmdExecuteGeneratedCommandsNVPtr = pVkCmdExecuteGeneratedCommandsNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdExecuteGeneratedCommandsNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteGeneratedCommandsNV is null" Nothing Nothing
-  let vkCmdExecuteGeneratedCommandsNV' = mkVkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNVPtr
-  pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)
-  lift $ traceAroundEvent "vkCmdExecuteGeneratedCommandsNV" (vkCmdExecuteGeneratedCommandsNV'
-                                                               (commandBufferHandle (commandBuffer))
-                                                               (boolToBool32 (isPreprocessed))
-                                                               pGeneratedCommandsInfo)
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdPreprocessGeneratedCommandsNV
-  :: FunPtr (Ptr CommandBuffer_T -> Ptr GeneratedCommandsInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Ptr GeneratedCommandsInfoNV -> IO ()
-
--- | vkCmdPreprocessGeneratedCommandsNV - Performs preprocessing for
--- generated commands
---
--- == Valid Usage
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927#
---     @pGeneratedCommandsInfo@\`s @indirectCommandsLayout@ /must/ have
---     been created with the
---     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' bit set
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter#
---     @pGeneratedCommandsInfo@ /must/ be a valid pointer to a valid
---     'GeneratedCommandsInfoNV' structure
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-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-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass# This command
---     /must/ only be called outside of a render pass instance
---
--- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'GeneratedCommandsInfoNV'
-cmdPreprocessGeneratedCommandsNV :: forall io
-                                  . (MonadIO io)
-                                 => -- | @commandBuffer@ is the command buffer which does the preprocessing.
-                                    CommandBuffer
-                                 -> -- | @pGeneratedCommandsInfo@ is a pointer to a 'GeneratedCommandsInfoNV'
-                                    -- structure containing parameters affecting the preprocessing step.
-                                    GeneratedCommandsInfoNV
-                                 -> io ()
-cmdPreprocessGeneratedCommandsNV commandBuffer
-                                   generatedCommandsInfo = liftIO . evalContT $ do
-  let vkCmdPreprocessGeneratedCommandsNVPtr = pVkCmdPreprocessGeneratedCommandsNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCmdPreprocessGeneratedCommandsNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPreprocessGeneratedCommandsNV is null" Nothing Nothing
-  let vkCmdPreprocessGeneratedCommandsNV' = mkVkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNVPtr
-  pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)
-  lift $ traceAroundEvent "vkCmdPreprocessGeneratedCommandsNV" (vkCmdPreprocessGeneratedCommandsNV'
-                                                                  (commandBufferHandle (commandBuffer))
-                                                                  pGeneratedCommandsInfo)
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdBindPipelineShaderGroupNV
-  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> Word32 -> IO ()
-
--- | vkCmdBindPipelineShaderGroupNV - Bind a pipeline object
---
--- == Valid Usage
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893# @groupIndex@
---     /must/ be @0@ or less than the effective
---     'GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ including
---     the referenced pipelines
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894# The
---     @pipelineBindPoint@ /must/ be
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895# The same
---     restrictions as
---     'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline' apply as if
---     the bound pipeline was created only with the Shader Group from the
---     @groupIndex@ information
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter#
---     @pipelineBindPoint@ /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter# @pipeline@
---     /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-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-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-videocoding# This command
---     /must/ only be called outside of a video coding scope
---
--- -   #VUID-vkCmdBindPipelineShaderGroupNV-commonparent# Both of
---     @commandBuffer@, and @pipeline@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',
--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'
-cmdBindPipelineShaderGroupNV :: forall io
-                              . (MonadIO io)
-                             => -- | @commandBuffer@ is the command buffer that the pipeline will be bound
-                                -- to.
-                                CommandBuffer
-                             -> -- | @pipelineBindPoint@ is a
-                                -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
-                                -- specifying the bind point to which the pipeline will be bound.
-                                PipelineBindPoint
-                             -> -- | @pipeline@ is the pipeline to be bound.
-                                Pipeline
-                             -> -- | @groupIndex@ is the shader group to be bound.
-                                ("groupIndex" ::: Word32)
-                             -> io ()
-cmdBindPipelineShaderGroupNV commandBuffer
-                               pipelineBindPoint
-                               pipeline
-                               groupIndex = liftIO $ do
-  let vkCmdBindPipelineShaderGroupNVPtr = pVkCmdBindPipelineShaderGroupNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdBindPipelineShaderGroupNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipelineShaderGroupNV is null" Nothing Nothing
-  let vkCmdBindPipelineShaderGroupNV' = mkVkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNVPtr
-  traceAroundEvent "vkCmdBindPipelineShaderGroupNV" (vkCmdBindPipelineShaderGroupNV'
-                                                       (commandBufferHandle (commandBuffer))
-                                                       (pipelineBindPoint)
-                                                       (pipeline)
-                                                       (groupIndex))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetGeneratedCommandsMemoryRequirementsNV
-  :: FunPtr (Ptr Device_T -> Ptr GeneratedCommandsMemoryRequirementsInfoNV -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr GeneratedCommandsMemoryRequirementsInfoNV -> Ptr (SomeStruct MemoryRequirements2) -> IO ()
-
--- | vkGetGeneratedCommandsMemoryRequirementsNV - Retrieve the buffer
--- allocation requirements for generated commands
---
--- == Valid Usage
---
--- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter#
---     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter#
---     @pInfo@ /must/ be a valid pointer to a valid
---     'GeneratedCommandsMemoryRequirementsInfoNV' structure
---
--- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter#
---     @pMemoryRequirements@ /must/ be a valid pointer to a
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
---     structure
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.Handles.Device',
--- 'GeneratedCommandsMemoryRequirementsInfoNV',
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
-getGeneratedCommandsMemoryRequirementsNV :: forall a io
-                                          . ( Extendss MemoryRequirements2 a
-                                            , PokeChain a
-                                            , PeekChain a
-                                            , MonadIO io )
-                                         => -- | @device@ is the logical device that owns the buffer.
-                                            Device
-                                         -> -- | @pInfo@ is a pointer to a 'GeneratedCommandsMemoryRequirementsInfoNV'
-                                            -- structure containing parameters required for the memory requirements
-                                            -- query.
-                                            GeneratedCommandsMemoryRequirementsInfoNV
-                                         -> io (MemoryRequirements2 a)
-getGeneratedCommandsMemoryRequirementsNV device info = liftIO . evalContT $ do
-  let vkGetGeneratedCommandsMemoryRequirementsNVPtr = pVkGetGeneratedCommandsMemoryRequirementsNV (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkGetGeneratedCommandsMemoryRequirementsNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetGeneratedCommandsMemoryRequirementsNV is null" Nothing Nothing
-  let vkGetGeneratedCommandsMemoryRequirementsNV' = mkVkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNVPtr
-  pInfo <- ContT $ withCStruct (info)
-  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))
-  lift $ traceAroundEvent "vkGetGeneratedCommandsMemoryRequirementsNV" (vkGetGeneratedCommandsMemoryRequirementsNV'
-                                                                          (deviceHandle (device))
-                                                                          pInfo
-                                                                          (forgetExtensions (pPMemoryRequirements)))
-  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements
-  pure $ (pMemoryRequirements)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCreateIndirectCommandsLayoutNV
-  :: FunPtr (Ptr Device_T -> Ptr IndirectCommandsLayoutCreateInfoNV -> Ptr AllocationCallbacks -> Ptr IndirectCommandsLayoutNV -> IO Result) -> Ptr Device_T -> Ptr IndirectCommandsLayoutCreateInfoNV -> Ptr AllocationCallbacks -> Ptr IndirectCommandsLayoutNV -> IO Result
-
--- | vkCreateIndirectCommandsLayoutNV - Create an indirect command layout
--- object
---
--- == Valid Usage
---
--- -   #VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCreateIndirectCommandsLayoutNV-device-parameter# @device@
---     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter#
---     @pCreateInfo@ /must/ be a valid pointer to a valid
---     'IndirectCommandsLayoutCreateInfoNV' structure
---
--- -   #VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameter# If
---     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
---     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
---     structure
---
--- -   #VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter#
---     @pIndirectCommandsLayout@ /must/ be a valid pointer to a
---     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
---
--- == Return Codes
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
---
---     -   'Vulkan.Core10.Enums.Result.SUCCESS'
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
--- 'Vulkan.Core10.Handles.Device', 'IndirectCommandsLayoutCreateInfoNV',
--- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'
-createIndirectCommandsLayoutNV :: forall io
-                                . (MonadIO io)
-                               => -- | @device@ is the logical device that creates the indirect command layout.
-                                  Device
-                               -> -- | @pCreateInfo@ is a pointer to a 'IndirectCommandsLayoutCreateInfoNV'
-                                  -- structure containing parameters affecting creation of the indirect
-                                  -- command layout.
-                                  IndirectCommandsLayoutCreateInfoNV
-                               -> -- | @pAllocator@ controls host memory allocation as described in the
-                                  -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
-                                  -- chapter.
-                                  ("allocator" ::: Maybe AllocationCallbacks)
-                               -> io (IndirectCommandsLayoutNV)
-createIndirectCommandsLayoutNV device
-                                 createInfo
-                                 allocator = liftIO . evalContT $ do
-  let vkCreateIndirectCommandsLayoutNVPtr = pVkCreateIndirectCommandsLayoutNV (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkCreateIndirectCommandsLayoutNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateIndirectCommandsLayoutNV is null" Nothing Nothing
-  let vkCreateIndirectCommandsLayoutNV' = mkVkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNVPtr
-  pCreateInfo <- ContT $ withCStruct (createInfo)
-  pAllocator <- case (allocator) of
-    Nothing -> pure nullPtr
-    Just j -> ContT $ withCStruct (j)
-  pPIndirectCommandsLayout <- ContT $ bracket (callocBytes @IndirectCommandsLayoutNV 8) free
-  r <- lift $ traceAroundEvent "vkCreateIndirectCommandsLayoutNV" (vkCreateIndirectCommandsLayoutNV'
-                                                                     (deviceHandle (device))
-                                                                     pCreateInfo
-                                                                     pAllocator
-                                                                     (pPIndirectCommandsLayout))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pIndirectCommandsLayout <- lift $ peek @IndirectCommandsLayoutNV pPIndirectCommandsLayout
-  pure $ (pIndirectCommandsLayout)
-
--- | A convenience wrapper to make a compatible pair of calls to
--- 'createIndirectCommandsLayoutNV' and 'destroyIndirectCommandsLayoutNV'
---
--- To ensure that 'destroyIndirectCommandsLayoutNV' is always called: pass
--- 'Control.Exception.bracket' (or the allocate function from your
--- favourite resource management library) as the last argument.
--- To just extract the pair pass '(,)' as the last argument.
---
-withIndirectCommandsLayoutNV :: forall io r . MonadIO io => Device -> IndirectCommandsLayoutCreateInfoNV -> Maybe AllocationCallbacks -> (io IndirectCommandsLayoutNV -> (IndirectCommandsLayoutNV -> io ()) -> r) -> r
-withIndirectCommandsLayoutNV device pCreateInfo pAllocator b =
-  b (createIndirectCommandsLayoutNV device pCreateInfo pAllocator)
-    (\(o0) -> destroyIndirectCommandsLayoutNV device o0 pAllocator)
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkDestroyIndirectCommandsLayoutNV
-  :: FunPtr (Ptr Device_T -> IndirectCommandsLayoutNV -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> IndirectCommandsLayoutNV -> Ptr AllocationCallbacks -> IO ()
-
--- | vkDestroyIndirectCommandsLayoutNV - Destroy an indirect commands layout
---
--- == Valid Usage
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938#
---     All submitted commands that refer to @indirectCommandsLayout@ /must/
---     have completed execution
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939#
---     If 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
---     provided when @indirectCommandsLayout@ was created, a compatible set
---     of callbacks /must/ be provided here
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940#
---     If no 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
---     provided when @indirectCommandsLayout@ was created, @pAllocator@
---     /must/ be @NULL@
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter# @device@
---     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter#
---     If @indirectCommandsLayout@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @indirectCommandsLayout@
---     /must/ be a valid
---     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameter# If
---     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
---     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
---     structure
---
--- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent#
---     If @indirectCommandsLayout@ is a valid handle, it /must/ have been
---     created, allocated, or retrieved from @device@
---
--- == Host Synchronization
---
--- -   Host access to @indirectCommandsLayout@ /must/ be externally
---     synchronized
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
--- 'Vulkan.Core10.Handles.Device',
--- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'
-destroyIndirectCommandsLayoutNV :: forall io
-                                 . (MonadIO io)
-                                => -- | @device@ is the logical device that destroys the layout.
-                                   Device
-                                -> -- | @indirectCommandsLayout@ is the layout to destroy.
-                                   IndirectCommandsLayoutNV
-                                -> -- | @pAllocator@ controls host memory allocation as described in the
-                                   -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
-                                   -- chapter.
-                                   ("allocator" ::: Maybe AllocationCallbacks)
-                                -> io ()
-destroyIndirectCommandsLayoutNV device
-                                  indirectCommandsLayout
-                                  allocator = liftIO . evalContT $ do
-  let vkDestroyIndirectCommandsLayoutNVPtr = pVkDestroyIndirectCommandsLayoutNV (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkDestroyIndirectCommandsLayoutNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyIndirectCommandsLayoutNV is null" Nothing Nothing
-  let vkDestroyIndirectCommandsLayoutNV' = mkVkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNVPtr
-  pAllocator <- case (allocator) of
-    Nothing -> pure nullPtr
-    Just j -> ContT $ withCStruct (j)
-  lift $ traceAroundEvent "vkDestroyIndirectCommandsLayoutNV" (vkDestroyIndirectCommandsLayoutNV'
-                                                                 (deviceHandle (device))
-                                                                 (indirectCommandsLayout)
-                                                                 pAllocator)
-  pure $ ()
-
-
--- | VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - Structure describing
--- the device-generated commands features that can be supported by an
--- implementation
---
--- = Members
---
--- This structure describes the following feature:
---
--- = Description
---
--- If the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' 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. 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' /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_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
-  { -- | #features-deviceGeneratedCommands# @deviceGeneratedCommands@ indicates
-    -- whether the implementation supports functionality to generate commands
-    -- on the device. See
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
-    deviceGeneratedCommands :: Bool }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
-#endif
-deriving instance Show PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
-
-instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsFeaturesNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCommands))
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
-
-instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
-  peekCStruct p = do
-    deviceGeneratedCommands <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    pure $ PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
-             (bool32ToBool deviceGeneratedCommands)
-
-instance Storable PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
-  zero = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
-           zero
-
-
--- | VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - Structure
--- describing push descriptor limits that can be supported by an
--- implementation
---
--- = Description
---
--- If the 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV' 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_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
-  { -- | @maxGraphicsShaderGroupCount@ is the maximum number of shader groups in
-    -- 'GraphicsPipelineShaderGroupsCreateInfoNV'.
-    maxGraphicsShaderGroupCount :: Word32
-  , -- | @maxIndirectSequenceCount@ is the maximum number of sequences in
-    -- 'GeneratedCommandsInfoNV' and in
-    -- 'GeneratedCommandsMemoryRequirementsInfoNV'.
-    maxIndirectSequenceCount :: Word32
-  , -- | @maxIndirectCommandsTokenCount@ is the maximum number of tokens in
-    -- 'IndirectCommandsLayoutCreateInfoNV'.
-    maxIndirectCommandsTokenCount :: Word32
-  , -- | @maxIndirectCommandsStreamCount@ is the maximum number of streams in
-    -- 'IndirectCommandsLayoutCreateInfoNV'.
-    maxIndirectCommandsStreamCount :: Word32
-  , -- | @maxIndirectCommandsTokenOffset@ is the maximum offset in
-    -- 'IndirectCommandsLayoutTokenNV'.
-    maxIndirectCommandsTokenOffset :: Word32
-  , -- | @maxIndirectCommandsStreamStride@ is the maximum stream stride in
-    -- 'IndirectCommandsLayoutCreateInfoNV'.
-    maxIndirectCommandsStreamStride :: Word32
-  , -- | @minSequencesCountBufferOffsetAlignment@ is the minimum alignment for
-    -- memory addresses which /can/ be used in 'GeneratedCommandsInfoNV'.
-    minSequencesCountBufferOffsetAlignment :: Word32
-  , -- | @minSequencesIndexBufferOffsetAlignment@ is the minimum alignment for
-    -- memory addresses which /can/ be used in 'GeneratedCommandsInfoNV'.
-    minSequencesIndexBufferOffsetAlignment :: Word32
-  , -- | @minIndirectCommandsBufferOffsetAlignment@ is the minimum alignment for
-    -- memory addresses used in 'IndirectCommandsStreamNV', and as preprocess
-    -- buffer in 'GeneratedCommandsInfoNV'.
-    minIndirectCommandsBufferOffsetAlignment :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
-#endif
-deriving instance Show PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
-
-instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsPropertiesNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxGraphicsShaderGroupCount)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxIndirectSequenceCount)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxIndirectCommandsTokenCount)
-    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxIndirectCommandsStreamCount)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxIndirectCommandsTokenOffset)
-    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxIndirectCommandsStreamStride)
-    poke ((p `plusPtr` 40 :: Ptr Word32)) (minSequencesCountBufferOffsetAlignment)
-    poke ((p `plusPtr` 44 :: Ptr Word32)) (minSequencesIndexBufferOffsetAlignment)
-    poke ((p `plusPtr` 48 :: Ptr Word32)) (minIndirectCommandsBufferOffsetAlignment)
-    f
-  cStructSize = 56
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
-  peekCStruct p = do
-    maxGraphicsShaderGroupCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    maxIndirectSequenceCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    maxIndirectCommandsTokenCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
-    maxIndirectCommandsStreamCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
-    maxIndirectCommandsTokenOffset <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    maxIndirectCommandsStreamStride <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
-    minSequencesCountBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    minSequencesIndexBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
-    minIndirectCommandsBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
-    pure $ PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
-             maxGraphicsShaderGroupCount
-             maxIndirectSequenceCount
-             maxIndirectCommandsTokenCount
-             maxIndirectCommandsStreamCount
-             maxIndirectCommandsTokenOffset
-             maxIndirectCommandsStreamStride
-             minSequencesCountBufferOffsetAlignment
-             minSequencesIndexBufferOffsetAlignment
-             minIndirectCommandsBufferOffsetAlignment
-
-instance Storable PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
-  sizeOf ~_ = 56
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
-  zero = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkGraphicsShaderGroupCreateInfoNV - Structure specifying override
--- parameters for each shader group
---
--- == Valid Usage
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888# For
---     @stageCount@, the same restrictions as in
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@stageCount@
---     apply
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889# For
---     @pStages@, the same restrictions as in
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ apply
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890# For
---     @pVertexInputState@, the same restrictions as in
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@
---     apply
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891#
---     For @pTessellationState@, the same restrictions as in
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pTessellationState@
---     apply
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType# @sType@ /must/
---     be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV'
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext# @pNext@ /must/
---     be @NULL@
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter# @pStages@
---     /must/ be a valid pointer to an array of @stageCount@ valid
---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures
---
--- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength#
---     @stageCount@ /must/ be greater than @0@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'GraphicsPipelineShaderGroupsCreateInfoNV',
--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',
--- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo',
--- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data GraphicsShaderGroupCreateInfoNV = GraphicsShaderGroupCreateInfoNV
-  { -- | @pStages@ is a pointer to an array
-    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures
-    -- specifying the set of the shader stages to be included in this shader
-    -- group.
-    stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
-  , -- | @pVertexInputState@ is a pointer to a
-    -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.
-    vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)
-  , -- | @pTessellationState@ is a pointer to a
-    -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' structure,
-    -- and is ignored if the shader group does not include a tessellation
-    -- control shader stage and tessellation evaluation shader stage.
-    tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (GraphicsShaderGroupCreateInfoNV)
-#endif
-deriving instance Show GraphicsShaderGroupCreateInfoNV
-
-instance ToCStruct GraphicsShaderGroupCreateInfoNV where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p GraphicsShaderGroupCreateInfoNV{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (stages)) :: Word32))
-    pPStages' <- ContT $ allocaBytes @(PipelineShaderStageCreateInfo _) ((Data.Vector.length (stages)) * 48)
-    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPStages' `plusPtr` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _))) (e) . ($ ())) (stages)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _)))) (pPStages')
-    pVertexInputState'' <- case (vertexInputState) of
-      Nothing -> pure nullPtr
-      Just j -> ContT @_ @_ @(Ptr (PipelineVertexInputStateCreateInfo '[])) $ \cont -> withSomeCStruct @PipelineVertexInputStateCreateInfo (j) (cont . castPtr)
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo _)))) pVertexInputState''
-    pTessellationState'' <- case (tessellationState) of
-      Nothing -> pure nullPtr
-      Just j -> ContT @_ @_ @(Ptr (PipelineTessellationStateCreateInfo '[])) $ \cont -> withSomeCStruct @PipelineTessellationStateCreateInfo (j) (cont . castPtr)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (PipelineTessellationStateCreateInfo _)))) pTessellationState''
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
-
-instance FromCStruct GraphicsShaderGroupCreateInfoNV where
-  peekCStruct p = do
-    stageCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
-    pStages' <- generateM (fromIntegral stageCount) (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
-    pVertexInputState <- peek @(Ptr (PipelineVertexInputStateCreateInfo _)) ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo _))))
-    pVertexInputState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pVertexInputState
-    pTessellationState <- peek @(Ptr (PipelineTessellationStateCreateInfo _)) ((p `plusPtr` 40 :: Ptr (Ptr (PipelineTessellationStateCreateInfo _))))
-    pTessellationState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pTessellationState
-    pure $ GraphicsShaderGroupCreateInfoNV
-             pStages' pVertexInputState' pTessellationState'
-
-instance Zero GraphicsShaderGroupCreateInfoNV where
-  zero = GraphicsShaderGroupCreateInfoNV
-           mempty
-           Nothing
-           Nothing
-
-
--- | VkGraphicsPipelineShaderGroupsCreateInfoNV - Structure specifying
--- parameters of a newly created multi shader group pipeline
---
--- = Description
---
--- When referencing shader groups by index, groups defined in the
--- referenced pipelines are treated as if they were defined as additional
--- entries in @pGroups@. They are appended in the order they appear in the
--- @pPipelines@ array and in the @pGroups@ array when those pipelines were
--- defined.
---
--- The application /must/ maintain the lifetime of all such referenced
--- pipelines based on the pipelines that make use of them.
---
--- == Valid Usage
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879#
---     @groupCount@ /must/ be at least @1@ and as maximum
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxGraphicsShaderGroupCount@
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880#
---     The sum of @groupCount@ including those groups added from referenced
---     @pPipelines@ /must/ also be as maximum
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxGraphicsShaderGroupCount@
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881# The
---     state of the first element of @pGroups@ /must/ match its equivalent
---     within the parent’s
---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882# Each
---     element of @pGroups@ /must/ in combination with the rest of the
---     pipeline state yield a valid state configuration
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884# All
---     elements of @pGroups@ /must/ use the same shader stage combinations
---     unless any mesh shader stage is used, then either combination of
---     task and mesh or just mesh shader is valid
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885# Mesh
---     and regular primitive shading stages cannot be mixed across
---     @pGroups@
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886#
---     Each element of @pPipelines@ /must/ have been created with identical
---     state to the pipeline currently created except the state that can be
---     overridden by 'GraphicsShaderGroupCreateInfoNV'
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887#
---     The
---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>
---     feature /must/ be enabled
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType#
---     @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV'
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter#
---     If @groupCount@ is not @0@, @pGroups@ /must/ be a valid pointer to
---     an array of @groupCount@ valid 'GraphicsShaderGroupCreateInfoNV'
---     structures
---
--- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter#
---     If @pipelineCount@ is not @0@, @pPipelines@ /must/ be a valid
---     pointer to an array of @pipelineCount@ valid
---     'Vulkan.Core10.Handles.Pipeline' handles
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'GraphicsShaderGroupCreateInfoNV', 'Vulkan.Core10.Handles.Pipeline',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data GraphicsPipelineShaderGroupsCreateInfoNV = GraphicsPipelineShaderGroupsCreateInfoNV
-  { -- | @pGroups@ is a pointer to an array of 'GraphicsShaderGroupCreateInfoNV'
-    -- structures specifying which state of the original
-    -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' each shader group
-    -- overrides.
-    groups :: Vector GraphicsShaderGroupCreateInfoNV
-  , -- | @pPipelines@ is a pointer to an array of graphics
-    -- 'Vulkan.Core10.Handles.Pipeline' structures which are referenced within
-    -- the created pipeline, including all their shader groups.
-    pipelines :: Vector Pipeline
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (GraphicsPipelineShaderGroupsCreateInfoNV)
-#endif
-deriving instance Show GraphicsPipelineShaderGroupsCreateInfoNV
-
-instance ToCStruct GraphicsPipelineShaderGroupsCreateInfoNV where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p GraphicsPipelineShaderGroupsCreateInfoNV{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (groups)) :: Word32))
-    pPGroups' <- ContT $ allocaBytes @GraphicsShaderGroupCreateInfoNV ((Data.Vector.length (groups)) * 48)
-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPGroups' `plusPtr` (48 * (i)) :: Ptr GraphicsShaderGroupCreateInfoNV) (e) . ($ ())) (groups)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr GraphicsShaderGroupCreateInfoNV))) (pPGroups')
-    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (pipelines)) :: Word32))
-    pPPipelines' <- ContT $ allocaBytes @Pipeline ((Data.Vector.length (pipelines)) * 8)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPPipelines' `plusPtr` (8 * (i)) :: Ptr Pipeline) (e)) (pipelines)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Pipeline))) (pPPipelines')
-    lift $ f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
-
-instance FromCStruct GraphicsPipelineShaderGroupsCreateInfoNV where
-  peekCStruct p = do
-    groupCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    pGroups <- peek @(Ptr GraphicsShaderGroupCreateInfoNV) ((p `plusPtr` 24 :: Ptr (Ptr GraphicsShaderGroupCreateInfoNV)))
-    pGroups' <- generateM (fromIntegral groupCount) (\i -> peekCStruct @GraphicsShaderGroupCreateInfoNV ((pGroups `advancePtrBytes` (48 * (i)) :: Ptr GraphicsShaderGroupCreateInfoNV)))
-    pipelineCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    pPipelines <- peek @(Ptr Pipeline) ((p `plusPtr` 40 :: Ptr (Ptr Pipeline)))
-    pPipelines' <- generateM (fromIntegral pipelineCount) (\i -> peek @Pipeline ((pPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
-    pure $ GraphicsPipelineShaderGroupsCreateInfoNV
-             pGroups' pPipelines'
-
-instance Zero GraphicsPipelineShaderGroupsCreateInfoNV where
-  zero = GraphicsPipelineShaderGroupsCreateInfoNV
-           mempty
-           mempty
-
-
--- | VkBindShaderGroupIndirectCommandNV - Structure specifying input data for
--- a single shader group command token
---
--- == Valid Usage
---
--- -   #VUID-VkBindShaderGroupIndirectCommandNV-None-02944# The current
---     bound graphics pipeline, as well as the pipelines it may reference,
---     /must/ have been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
---
--- -   #VUID-VkBindShaderGroupIndirectCommandNV-index-02945# The @index@
---     /must/ be within range of the accessible shader groups of the
---     current bound graphics pipeline. See 'cmdBindPipelineShaderGroupNV'
---     for further details
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
-data BindShaderGroupIndirectCommandNV = BindShaderGroupIndirectCommandNV
-  { -- No documentation found for Nested "VkBindShaderGroupIndirectCommandNV" "groupIndex"
-    groupIndex :: Word32 }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (BindShaderGroupIndirectCommandNV)
-#endif
-deriving instance Show BindShaderGroupIndirectCommandNV
-
-instance ToCStruct BindShaderGroupIndirectCommandNV where
-  withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BindShaderGroupIndirectCommandNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (groupIndex)
-    f
-  cStructSize = 4
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct BindShaderGroupIndirectCommandNV where
-  peekCStruct p = do
-    groupIndex <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    pure $ BindShaderGroupIndirectCommandNV
-             groupIndex
-
-instance Storable BindShaderGroupIndirectCommandNV where
-  sizeOf ~_ = 4
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BindShaderGroupIndirectCommandNV where
-  zero = BindShaderGroupIndirectCommandNV
-           zero
-
-
--- | VkBindIndexBufferIndirectCommandNV - Structure specifying input data for
--- a single index buffer command token
---
--- == Valid Usage
---
--- -   #VUID-VkBindIndexBufferIndirectCommandNV-None-02946# The buffer’s
---     usage flag from which the address was acquired /must/ have the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'
---     bit set
---
--- -   #VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947# The
---     @bufferAddress@ /must/ be aligned to the @indexType@ used
---
--- -   #VUID-VkBindIndexBufferIndirectCommandNV-None-02948# Each element of
---     the buffer from which the address was acquired and that is
---     non-sparse /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter#
---     @indexType@ /must/ be a valid
---     'Vulkan.Core10.Enums.IndexType.IndexType' value
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
--- 'Vulkan.Core10.Enums.IndexType.IndexType'
-data BindIndexBufferIndirectCommandNV = BindIndexBufferIndirectCommandNV
-  { -- | @bufferAddress@ specifies a physical address of the
-    -- 'Vulkan.Core10.Handles.Buffer' used as index buffer.
-    bufferAddress :: DeviceAddress
-  , -- | @size@ is the byte size range which is available for this operation from
-    -- the provided address.
-    size :: Word32
-  , -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value
-    -- specifying how indices are treated. Instead of the Vulkan enum values, a
-    -- custom @uint32_t@ value /can/ be mapped to an
-    -- 'Vulkan.Core10.Enums.IndexType.IndexType' by specifying the
-    -- 'IndirectCommandsLayoutTokenNV'::@pIndexTypes@ and
-    -- 'IndirectCommandsLayoutTokenNV'::@pIndexTypeValues@ arrays.
-    indexType :: IndexType
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (BindIndexBufferIndirectCommandNV)
-#endif
-deriving instance Show BindIndexBufferIndirectCommandNV
-
-instance ToCStruct BindIndexBufferIndirectCommandNV where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BindIndexBufferIndirectCommandNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (bufferAddress)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (size)
-    poke ((p `plusPtr` 12 :: Ptr IndexType)) (indexType)
-    f
-  cStructSize = 16
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr IndexType)) (zero)
-    f
-
-instance FromCStruct BindIndexBufferIndirectCommandNV where
-  peekCStruct p = do
-    bufferAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))
-    size <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
-    indexType <- peek @IndexType ((p `plusPtr` 12 :: Ptr IndexType))
-    pure $ BindIndexBufferIndirectCommandNV
-             bufferAddress size indexType
-
-instance Storable BindIndexBufferIndirectCommandNV where
-  sizeOf ~_ = 16
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BindIndexBufferIndirectCommandNV where
-  zero = BindIndexBufferIndirectCommandNV
-           zero
-           zero
-           zero
-
-
--- | VkBindVertexBufferIndirectCommandNV - Structure specifying input data
--- for a single vertex buffer command token
---
--- == Valid Usage
---
--- -   #VUID-VkBindVertexBufferIndirectCommandNV-None-02949# The buffer’s
---     usage flag from which the address was acquired /must/ have the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'
---     bit set
---
--- -   #VUID-VkBindVertexBufferIndirectCommandNV-None-02950# Each element
---     of the buffer from which the address was acquired and that is
---     non-sparse /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
-data BindVertexBufferIndirectCommandNV = BindVertexBufferIndirectCommandNV
-  { -- | @bufferAddress@ specifies a physical address of the
-    -- 'Vulkan.Core10.Handles.Buffer' used as vertex input binding.
-    bufferAddress :: DeviceAddress
-  , -- | @size@ is the byte size range which is available for this operation from
-    -- the provided address.
-    size :: Word32
-  , -- | @stride@ is the byte size stride for this vertex input binding as in
-    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@. It is
-    -- only used if 'IndirectCommandsLayoutTokenNV'::@vertexDynamicStride@ was
-    -- set, otherwise the stride is inherited from the current bound graphics
-    -- pipeline.
-    stride :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (BindVertexBufferIndirectCommandNV)
-#endif
-deriving instance Show BindVertexBufferIndirectCommandNV
-
-instance ToCStruct BindVertexBufferIndirectCommandNV where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p BindVertexBufferIndirectCommandNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (bufferAddress)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (size)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (stride)
-    f
-  cStructSize = 16
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct BindVertexBufferIndirectCommandNV where
-  peekCStruct p = do
-    bufferAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))
-    size <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
-    stride <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
-    pure $ BindVertexBufferIndirectCommandNV
-             bufferAddress size stride
-
-instance Storable BindVertexBufferIndirectCommandNV where
-  sizeOf ~_ = 16
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero BindVertexBufferIndirectCommandNV where
-  zero = BindVertexBufferIndirectCommandNV
-           zero
-           zero
-           zero
-
-
--- | VkSetStateFlagsIndirectCommandNV - Structure specifying input data for a
--- single state flag command token
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
-data SetStateFlagsIndirectCommandNV = SetStateFlagsIndirectCommandNV
-  { -- | @data@ encodes packed state that this command alters.
-    --
-    -- -   Bit @0@: If set represents
-    --     'Vulkan.Core10.Enums.FrontFace.FRONT_FACE_CLOCKWISE', otherwise
-    --     'Vulkan.Core10.Enums.FrontFace.FRONT_FACE_COUNTER_CLOCKWISE'
-    data' :: Word32 }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (SetStateFlagsIndirectCommandNV)
-#endif
-deriving instance Show SetStateFlagsIndirectCommandNV
-
-instance ToCStruct SetStateFlagsIndirectCommandNV where
-  withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p SetStateFlagsIndirectCommandNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (data')
-    f
-  cStructSize = 4
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct SetStateFlagsIndirectCommandNV where
-  peekCStruct p = do
-    data' <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    pure $ SetStateFlagsIndirectCommandNV
-             data'
-
-instance Storable SetStateFlagsIndirectCommandNV where
-  sizeOf ~_ = 4
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero SetStateFlagsIndirectCommandNV where
-  zero = SetStateFlagsIndirectCommandNV
-           zero
-
-
--- | VkIndirectCommandsStreamNV - Structure specifying input streams for
--- generated command tokens
---
--- == Valid Usage
---
--- -   #VUID-VkIndirectCommandsStreamNV-buffer-02942# The @buffer@’s usage
---     flag /must/ have the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-VkIndirectCommandsStreamNV-offset-02943# The @offset@ /must/
---     be aligned to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@
---
--- -   #VUID-VkIndirectCommandsStreamNV-buffer-02975# If @buffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkIndirectCommandsStreamNV-buffer-parameter# @buffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.Handles.Buffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'GeneratedCommandsInfoNV'
-data IndirectCommandsStreamNV = IndirectCommandsStreamNV
-  { -- | @buffer@ specifies the 'Vulkan.Core10.Handles.Buffer' storing the
-    -- functional arguments for each sequence. These arguments /can/ be written
-    -- by the device.
-    buffer :: Buffer
-  , -- | @offset@ specified an offset into @buffer@ where the arguments start.
-    offset :: DeviceSize
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (IndirectCommandsStreamNV)
-#endif
-deriving instance Show IndirectCommandsStreamNV
-
-instance ToCStruct IndirectCommandsStreamNV where
-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p IndirectCommandsStreamNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Buffer)) (buffer)
-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (offset)
-    f
-  cStructSize = 16
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Buffer)) (zero)
-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)
-    f
-
-instance FromCStruct IndirectCommandsStreamNV where
-  peekCStruct p = do
-    buffer <- peek @Buffer ((p `plusPtr` 0 :: Ptr Buffer))
-    offset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))
-    pure $ IndirectCommandsStreamNV
-             buffer offset
-
-instance Storable IndirectCommandsStreamNV where
-  sizeOf ~_ = 16
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero IndirectCommandsStreamNV where
-  zero = IndirectCommandsStreamNV
-           zero
-           zero
-
-
--- | VkIndirectCommandsLayoutTokenNV - Struct specifying the details of an
--- indirect command layout token
---
--- == Valid Usage
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-stream-02951# @stream@ /must/
---     be smaller than 'IndirectCommandsLayoutCreateInfoNV'::@streamCount@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-offset-02952# @offset@ /must/
---     be less than or equal to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsTokenOffset@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-offset-06888# @offset@ /must/
---     be aligned to the scalar alignment of @tokenType@ or
---     @minIndirectCommandsBufferOffsetAlignment@, whichever is lower
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV',
---     @vertexBindingUnit@ /must/ stay within device supported limits for
---     the appropriate commands
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
---     @pushconstantPipelineLayout@ /must/ be valid
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
---     @pushconstantOffset@ /must/ be a multiple of @4@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
---     @pushconstantSize@ /must/ be a multiple of @4@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
---     @pushconstantOffset@ /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
---     @pushconstantSize@ /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
---     minus @pushconstantOffset@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV', for
---     each byte in the range specified by @pushconstantOffset@ and
---     @pushconstantSize@ and for each shader stage in
---     @pushconstantShaderStageFlags@, there /must/ be a push constant
---     range in @pushconstantPipelineLayout@ that includes that byte and
---     that stage
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV', for
---     each byte in the range specified by @pushconstantOffset@ and
---     @pushconstantSize@ and for each push constant range that overlaps
---     that byte, @pushconstantShaderStageFlags@ /must/ include all stages
---     in that push constant range’s
---     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984# If
---     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV',
---     @indirectStateFlags@ /must/ not be @0@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV'
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext# @pNext@ /must/ be
---     @NULL@
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter#
---     @tokenType@ /must/ be a valid 'IndirectCommandsTokenTypeNV' value
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter#
---     If @pushconstantPipelineLayout@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE',
---     @pushconstantPipelineLayout@ /must/ be a valid
---     'Vulkan.Core10.Handles.PipelineLayout' handle
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter#
---     @pushconstantShaderStageFlags@ /must/ be a valid combination of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter#
---     @indirectStateFlags@ /must/ be a valid combination of
---     'IndirectStateFlagBitsNV' values
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter# If
---     @indexTypeCount@ is not @0@, @pIndexTypes@ /must/ be a valid pointer
---     to an array of @indexTypeCount@ valid
---     'Vulkan.Core10.Enums.IndexType.IndexType' values
---
--- -   #VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter# If
---     @indexTypeCount@ is not @0@, @pIndexTypeValues@ /must/ be a valid
---     pointer to an array of @indexTypeCount@ @uint32_t@ values
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.IndexType.IndexType',
--- 'IndirectCommandsLayoutCreateInfoNV', 'IndirectCommandsTokenTypeNV',
--- 'IndirectStateFlagsNV', 'Vulkan.Core10.Handles.PipelineLayout',
--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data IndirectCommandsLayoutTokenNV = IndirectCommandsLayoutTokenNV
-  { -- | @tokenType@ specifies the token command type.
-    tokenType :: IndirectCommandsTokenTypeNV
-  , -- | @stream@ is the index of the input stream containing the token argument
-    -- data.
-    stream :: Word32
-  , -- | @offset@ is a relative starting offset within the input stream memory
-    -- for the token argument data.
-    offset :: Word32
-  , -- | @vertexBindingUnit@ is used for the vertex buffer binding command.
-    vertexBindingUnit :: Word32
-  , -- | @vertexDynamicStride@ sets if the vertex buffer stride is provided by
-    -- the binding command rather than the current bound graphics pipeline
-    -- state.
-    vertexDynamicStride :: Bool
-  , -- | @pushconstantPipelineLayout@ is the
-    -- 'Vulkan.Core10.Handles.PipelineLayout' used for the push constant
-    -- command.
-    pushconstantPipelineLayout :: PipelineLayout
-  , -- | @pushconstantShaderStageFlags@ are the shader stage flags used for the
-    -- push constant command.
-    pushconstantShaderStageFlags :: ShaderStageFlags
-  , -- | @pushconstantOffset@ is the offset used for the push constant command.
-    pushconstantOffset :: Word32
-  , -- | @pushconstantSize@ is the size used for the push constant command.
-    pushconstantSize :: Word32
-  , -- | @indirectStateFlags@ are the active states for the state flag command.
-    indirectStateFlags :: IndirectStateFlagsNV
-  , -- | @pIndexTypes@ is the used 'Vulkan.Core10.Enums.IndexType.IndexType' for
-    -- the corresponding @uint32_t@ value entry in @pIndexTypeValues@.
-    indexTypes :: Vector IndexType
-  , -- No documentation found for Nested "VkIndirectCommandsLayoutTokenNV" "pIndexTypeValues"
-    indexTypeValues :: Vector Word32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (IndirectCommandsLayoutTokenNV)
-#endif
-deriving instance Show IndirectCommandsLayoutTokenNV
-
-instance ToCStruct IndirectCommandsLayoutTokenNV where
-  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p IndirectCommandsLayoutTokenNV{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeNV)) (tokenType)
-    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (stream)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (offset)
-    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (vertexBindingUnit)
-    lift $ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (vertexDynamicStride))
-    lift $ poke ((p `plusPtr` 40 :: Ptr PipelineLayout)) (pushconstantPipelineLayout)
-    lift $ poke ((p `plusPtr` 48 :: Ptr ShaderStageFlags)) (pushconstantShaderStageFlags)
-    lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (pushconstantOffset)
-    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (pushconstantSize)
-    lift $ poke ((p `plusPtr` 60 :: Ptr IndirectStateFlagsNV)) (indirectStateFlags)
-    let pIndexTypesLength = Data.Vector.length $ (indexTypes)
-    lift $ unless ((Data.Vector.length $ (indexTypeValues)) == pIndexTypesLength) $
-      throwIO $ IOError Nothing InvalidArgument "" "pIndexTypeValues and pIndexTypes must have the same length" Nothing Nothing
-    lift $ poke ((p `plusPtr` 64 :: Ptr Word32)) ((fromIntegral pIndexTypesLength :: Word32))
-    pPIndexTypes' <- ContT $ allocaBytes @IndexType ((Data.Vector.length (indexTypes)) * 4)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPIndexTypes' `plusPtr` (4 * (i)) :: Ptr IndexType) (e)) (indexTypes)
-    lift $ poke ((p `plusPtr` 72 :: Ptr (Ptr IndexType))) (pPIndexTypes')
-    pPIndexTypeValues' <- ContT $ allocaBytes @Word32 ((Data.Vector.length (indexTypeValues)) * 4)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPIndexTypeValues' `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (indexTypeValues)
-    lift $ poke ((p `plusPtr` 80 :: Ptr (Ptr Word32))) (pPIndexTypeValues')
-    lift $ f
-  cStructSize = 88
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeNV)) (zero)
-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct IndirectCommandsLayoutTokenNV where
-  peekCStruct p = do
-    tokenType <- peek @IndirectCommandsTokenTypeNV ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeNV))
-    stream <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    offset <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
-    vertexBindingUnit <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
-    vertexDynamicStride <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
-    pushconstantPipelineLayout <- peek @PipelineLayout ((p `plusPtr` 40 :: Ptr PipelineLayout))
-    pushconstantShaderStageFlags <- peek @ShaderStageFlags ((p `plusPtr` 48 :: Ptr ShaderStageFlags))
-    pushconstantOffset <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
-    pushconstantSize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
-    indirectStateFlags <- peek @IndirectStateFlagsNV ((p `plusPtr` 60 :: Ptr IndirectStateFlagsNV))
-    indexTypeCount <- peek @Word32 ((p `plusPtr` 64 :: Ptr Word32))
-    pIndexTypes <- peek @(Ptr IndexType) ((p `plusPtr` 72 :: Ptr (Ptr IndexType)))
-    pIndexTypes' <- generateM (fromIntegral indexTypeCount) (\i -> peek @IndexType ((pIndexTypes `advancePtrBytes` (4 * (i)) :: Ptr IndexType)))
-    pIndexTypeValues <- peek @(Ptr Word32) ((p `plusPtr` 80 :: Ptr (Ptr Word32)))
-    pIndexTypeValues' <- generateM (fromIntegral indexTypeCount) (\i -> peek @Word32 ((pIndexTypeValues `advancePtrBytes` (4 * (i)) :: Ptr Word32)))
-    pure $ IndirectCommandsLayoutTokenNV
-             tokenType
-             stream
-             offset
-             vertexBindingUnit
-             (bool32ToBool vertexDynamicStride)
-             pushconstantPipelineLayout
-             pushconstantShaderStageFlags
-             pushconstantOffset
-             pushconstantSize
-             indirectStateFlags
-             pIndexTypes'
-             pIndexTypeValues'
-
-instance Zero IndirectCommandsLayoutTokenNV where
-  zero = IndirectCommandsLayoutTokenNV
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           mempty
-           mempty
-
-
--- | VkIndirectCommandsLayoutCreateInfoNV - Structure specifying the
--- parameters of a newly created indirect commands layout object
---
--- = Description
---
--- The following code illustrates some of the flags:
---
--- > void cmdProcessAllSequences(cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sequencesCount, indexbuffer, indexbufferOffset)
--- > {
--- >   for (s = 0; s < sequencesCount; s++)
--- >   {
--- >     sUsed = s;
--- >
--- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV) {
--- >       sUsed = indexbuffer.load_uint32( sUsed * sizeof(uint32_t) + indexbufferOffset);
--- >     }
--- >
--- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV) {
--- >       sUsed = incoherent_implementation_dependent_permutation[ sUsed ];
--- >     }
--- >
--- >     cmdProcessSequence( cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sUsed );
--- >   }
--- > }
---
--- When tokens are consumed, an offset is computed based on token offset
--- and stream stride. The resulting offset is required to be aligned. The
--- alignment for a specific token is equal to the scalar alignment of the
--- data type as defined in
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements Alignment Requirements>,
--- or
--- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@,
--- whichever is lower.
---
--- Note
---
--- A @minIndirectCommandsBufferOffsetAlignment@ of 4 allows
--- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' to be packed as @uvec2@
--- with scalar layout instead of @uint64_t@ with 8 byte alignment. This
--- enables direct compatibility with D3D12 command signature layouts.
---
--- == Valid Usage
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930#
---     The @pipelineBindPoint@ /must/ be
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931#
---     @tokenCount@ /must/ be greater than @0@ and less than or equal to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsTokenCount@
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932# If
---     @pTokens@ contains an entry of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV' it /must/ be the
---     first element of the array and there /must/ be only a single element
---     of such token type
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933# If
---     @pTokens@ contains an entry of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV' there /must/ be only a
---     single element of such token type
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934# All state
---     tokens in @pTokens@ /must/ occur before any work provoking tokens
---     ('INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV',
---     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV',
---     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV',
---     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV')
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935# The
---     content of @pTokens@ /must/ include one single work provoking token
---     that is compatible with the @pipelineBindPoint@
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936#
---     @streamCount@ /must/ be greater than @0@ and less or equal to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsStreamCount@
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937#
---     each element of @pStreamStrides@ /must/ be greater than \`0\`and
---     less than or equal to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsStreamStride@.
---     Furthermore the alignment of each token input /must/ be ensured
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType# @sType@
---     /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV'
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext# @pNext@
---     /must/ be @NULL@
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter# @flags@
---     /must/ be a valid combination of
---     'IndirectCommandsLayoutUsageFlagBitsNV' values
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter#
---     @pipelineBindPoint@ /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter#
---     @pTokens@ /must/ be a valid pointer to an array of @tokenCount@
---     valid 'IndirectCommandsLayoutTokenNV' structures
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter#
---     @pStreamStrides@ /must/ be a valid pointer to an array of
---     @streamCount@ @uint32_t@ values
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength#
---     @tokenCount@ /must/ be greater than @0@
---
--- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength#
---     @streamCount@ /must/ be greater than @0@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'IndirectCommandsLayoutTokenNV', 'IndirectCommandsLayoutUsageFlagsNV',
--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'createIndirectCommandsLayoutNV'
-data IndirectCommandsLayoutCreateInfoNV = IndirectCommandsLayoutCreateInfoNV
-  { -- | @flags@ is a bitmask of 'IndirectCommandsLayoutUsageFlagBitsNV'
-    -- specifying usage hints of this layout.
-    flags :: IndirectCommandsLayoutUsageFlagsNV
-  , -- | @pipelineBindPoint@ is the
-    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' that this
-    -- layout targets.
-    pipelineBindPoint :: PipelineBindPoint
-  , -- | @pTokens@ is an array describing each command token in detail. See
-    -- 'IndirectCommandsTokenTypeNV' and 'IndirectCommandsLayoutTokenNV' below
-    -- for details.
-    tokens :: Vector IndirectCommandsLayoutTokenNV
-  , -- | @pStreamStrides@ is an array defining the byte stride for each input
-    -- stream.
-    streamStrides :: Vector Word32
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (IndirectCommandsLayoutCreateInfoNV)
-#endif
-deriving instance Show IndirectCommandsLayoutCreateInfoNV
-
-instance ToCStruct IndirectCommandsLayoutCreateInfoNV where
-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p IndirectCommandsLayoutCreateInfoNV{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsNV)) (flags)
-    lift $ poke ((p `plusPtr` 20 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (tokens)) :: Word32))
-    pPTokens' <- ContT $ allocaBytes @IndirectCommandsLayoutTokenNV ((Data.Vector.length (tokens)) * 88)
-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPTokens' `plusPtr` (88 * (i)) :: Ptr IndirectCommandsLayoutTokenNV) (e) . ($ ())) (tokens)
-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr IndirectCommandsLayoutTokenNV))) (pPTokens')
-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (streamStrides)) :: Word32))
-    pPStreamStrides' <- ContT $ allocaBytes @Word32 ((Data.Vector.length (streamStrides)) * 4)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPStreamStrides' `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (streamStrides)
-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr Word32))) (pPStreamStrides')
-    lift $ f
-  cStructSize = 56
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 20 :: Ptr PipelineBindPoint)) (zero)
-    f
-
-instance FromCStruct IndirectCommandsLayoutCreateInfoNV where
-  peekCStruct p = do
-    flags <- peek @IndirectCommandsLayoutUsageFlagsNV ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsNV))
-    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 20 :: Ptr PipelineBindPoint))
-    tokenCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
-    pTokens <- peek @(Ptr IndirectCommandsLayoutTokenNV) ((p `plusPtr` 32 :: Ptr (Ptr IndirectCommandsLayoutTokenNV)))
-    pTokens' <- generateM (fromIntegral tokenCount) (\i -> peekCStruct @IndirectCommandsLayoutTokenNV ((pTokens `advancePtrBytes` (88 * (i)) :: Ptr IndirectCommandsLayoutTokenNV)))
-    streamCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    pStreamStrides <- peek @(Ptr Word32) ((p `plusPtr` 48 :: Ptr (Ptr Word32)))
-    pStreamStrides' <- generateM (fromIntegral streamCount) (\i -> peek @Word32 ((pStreamStrides `advancePtrBytes` (4 * (i)) :: Ptr Word32)))
-    pure $ IndirectCommandsLayoutCreateInfoNV
-             flags pipelineBindPoint pTokens' pStreamStrides'
-
-instance Zero IndirectCommandsLayoutCreateInfoNV where
-  zero = IndirectCommandsLayoutCreateInfoNV
-           zero
-           zero
-           mempty
-           mempty
-
-
--- | VkGeneratedCommandsInfoNV - Structure specifying parameters for the
--- generation of commands
---
--- == Valid Usage
---
--- -   #VUID-VkGeneratedCommandsInfoNV-pipeline-02912# The provided
---     @pipeline@ /must/ match the pipeline bound at execution time
---
--- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913# If the
---     @indirectCommandsLayout@ uses a token of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV', then the @pipeline@
---     /must/ have been created with multiple shader groups
---
--- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914# If the
---     @indirectCommandsLayout@ uses a token of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV', then the @pipeline@
---     /must/ have been created with
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
---     set in 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@flags@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915# If the
---     @indirectCommandsLayout@ uses a token of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV', then the
---     @pipeline@\`s 'Vulkan.Core10.Handles.PipelineLayout' /must/ match
---     the 'IndirectCommandsLayoutTokenNV'::@pushconstantPipelineLayout@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-streamCount-02916# @streamCount@
---     /must/ match the @indirectCommandsLayout@’s @streamCount@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917#
---     @sequencesCount@ /must/ be less or equal to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectSequenceCount@
---     and 'GeneratedCommandsMemoryRequirementsInfoNV'::@maxSequencesCount@
---     that was used to determine the @preprocessSize@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918#
---     @preprocessBuffer@ /must/ have the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set in its usage flag
---
--- -   #VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919#
---     @preprocessOffset@ /must/ be aligned to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971# If
---     @preprocessBuffer@ is non-sparse then it /must/ be bound completely
---     and contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory'
---     object
---
--- -   #VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920#
---     @preprocessSize@ /must/ be at least equal to the memory
---     requirement\`s size returned by
---     'getGeneratedCommandsMemoryRequirementsNV' using the matching inputs
---     (@indirectCommandsLayout@, …​) as within this structure
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921#
---     @sequencesCountBuffer@ /can/ be set if the actual used count of
---     sequences is sourced from the provided buffer. In that case the
---     @sequencesCount@ serves as upper bound
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922# If
---     @sequencesCountBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', its usage flag /must/ have
---     the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923# If
---     @sequencesCountBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesCountOffset@
---     /must/ be aligned to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minSequencesCountBufferOffsetAlignment@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972# If
---     @sequencesCountBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' and is non-sparse then it
---     /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924# If
---     @indirectCommandsLayout@’s
---     'INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV' is set,
---     @sequencesIndexBuffer@ /must/ be set otherwise it /must/ be
---     'Vulkan.Core10.APIConstants.NULL_HANDLE'
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925# If
---     @sequencesIndexBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', its usage flag /must/ have
---     the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926# If
---     @sequencesIndexBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesIndexOffset@
---     /must/ be aligned to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minSequencesIndexBufferOffsetAlignment@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973# If
---     @sequencesIndexBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' and is non-sparse then it
---     /must/ be bound completely and contiguously to a single
---     'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078# If the
---     @indirectCommandsLayout@ uses a token of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV', then the @pipeline@
---     /must/ contain a shader stage using the @MeshNV@ @Execution@ @Model@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079# If the
---     @indirectCommandsLayout@ uses a token of
---     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV', then the
---     @pipeline@ /must/ contain a shader stage using the @MeshEXT@
---     @Execution@ @Model@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sType-sType# @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV'
---
--- -   #VUID-VkGeneratedCommandsInfoNV-pNext-pNext# @pNext@ /must/ be
---     @NULL@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter#
---     @pipelineBindPoint@ /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
---
--- -   #VUID-VkGeneratedCommandsInfoNV-pipeline-parameter# @pipeline@
---     /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
---
--- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter#
---     @indirectCommandsLayout@ /must/ be a valid
---     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
---
--- -   #VUID-VkGeneratedCommandsInfoNV-pStreams-parameter# @pStreams@
---     /must/ be a valid pointer to an array of @streamCount@ valid
---     'IndirectCommandsStreamNV' structures
---
--- -   #VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter#
---     @preprocessBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
---     handle
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter# If
---     @sequencesCountBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesCountBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter# If
---     @sequencesIndexBuffer@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesIndexBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength#
---     @streamCount@ /must/ be greater than @0@
---
--- -   #VUID-VkGeneratedCommandsInfoNV-commonparent# Each of
---     @indirectCommandsLayout@, @pipeline@, @preprocessBuffer@,
---     @sequencesCountBuffer@, and @sequencesIndexBuffer@ that are valid
---     handles of non-ignored parameters /must/ have been created,
---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Core10.Handles.Buffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
--- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV',
--- 'IndirectCommandsStreamNV', 'Vulkan.Core10.Handles.Pipeline',
--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'cmdExecuteGeneratedCommandsNV', 'cmdPreprocessGeneratedCommandsNV'
-data GeneratedCommandsInfoNV = GeneratedCommandsInfoNV
-  { -- | @pipelineBindPoint@ is the
-    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' used for the
-    -- @pipeline@.
-    pipelineBindPoint :: PipelineBindPoint
-  , -- | @pipeline@ is the 'Vulkan.Core10.Handles.Pipeline' used in the
-    -- generation and execution process.
-    pipeline :: Pipeline
-  , -- | @indirectCommandsLayout@ is the
-    -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' that provides the
-    -- command sequence to generate.
-    indirectCommandsLayout :: IndirectCommandsLayoutNV
-  , -- | @pStreams@ is a pointer to an array of @streamCount@
-    -- 'IndirectCommandsStreamNV' structures providing the input data for the
-    -- tokens used in @indirectCommandsLayout@.
-    streams :: Vector IndirectCommandsStreamNV
-  , -- | @sequencesCount@ is the maximum number of sequences to reserve. If
-    -- @sequencesCountBuffer@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', this
-    -- is also the actual number of sequences generated.
-    sequencesCount :: Word32
-  , -- | @preprocessBuffer@ is the 'Vulkan.Core10.Handles.Buffer' that is used
-    -- for preprocessing the input data for execution. If this structure is
-    -- used with 'cmdExecuteGeneratedCommandsNV' with its @isPreprocessed@ set
-    -- to 'Vulkan.Core10.FundamentalTypes.TRUE', then the preprocessing step is
-    -- skipped and data is only read from this buffer. The contents and the
-    -- layout of this buffer is opaque to applications and /must/ not be
-    -- modified or copied to another buffer for reuse.
-    preprocessBuffer :: Buffer
-  , -- | @preprocessOffset@ is the byte offset into @preprocessBuffer@ where the
-    -- preprocessed data is stored.
-    preprocessOffset :: DeviceSize
-  , -- | @preprocessSize@ is the maximum byte size within the @preprocessBuffer@
-    -- after the @preprocessOffset@ that is available for preprocessing.
-    preprocessSize :: DeviceSize
-  , -- | @sequencesCountBuffer@ is a 'Vulkan.Core10.Handles.Buffer' in which the
-    -- actual number of sequences is provided as single @uint32_t@ value.
-    sequencesCountBuffer :: Buffer
-  , -- | @sequencesCountOffset@ is the byte offset into @sequencesCountBuffer@
-    -- where the count value is stored.
-    sequencesCountOffset :: DeviceSize
-  , -- | @sequencesIndexBuffer@ is a 'Vulkan.Core10.Handles.Buffer' that encodes
-    -- the used sequence indices as @uint32_t@ array.
-    sequencesIndexBuffer :: Buffer
-  , -- | @sequencesIndexOffset@ is the byte offset into @sequencesIndexBuffer@
-    -- where the index values start.
-    sequencesIndexOffset :: DeviceSize
-  }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (GeneratedCommandsInfoNV)
-#endif
-deriving instance Show GeneratedCommandsInfoNV
-
-instance ToCStruct GeneratedCommandsInfoNV where
-  withCStruct x f = allocaBytes 120 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p GeneratedCommandsInfoNV{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
-    lift $ poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
-    lift $ poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (indirectCommandsLayout)
-    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (streams)) :: Word32))
-    pPStreams' <- ContT $ allocaBytes @IndirectCommandsStreamNV ((Data.Vector.length (streams)) * 16)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPStreams' `plusPtr` (16 * (i)) :: Ptr IndirectCommandsStreamNV) (e)) (streams)
-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr IndirectCommandsStreamNV))) (pPStreams')
-    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (sequencesCount)
-    lift $ poke ((p `plusPtr` 64 :: Ptr Buffer)) (preprocessBuffer)
-    lift $ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (preprocessOffset)
-    lift $ poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (preprocessSize)
-    lift $ poke ((p `plusPtr` 88 :: Ptr Buffer)) (sequencesCountBuffer)
-    lift $ poke ((p `plusPtr` 96 :: Ptr DeviceSize)) (sequencesCountOffset)
-    lift $ poke ((p `plusPtr` 104 :: Ptr Buffer)) (sequencesIndexBuffer)
-    lift $ poke ((p `plusPtr` 112 :: Ptr DeviceSize)) (sequencesIndexOffset)
-    lift $ f
-  cStructSize = 120
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (zero)
-    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 64 :: Ptr Buffer)) (zero)
-    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 96 :: Ptr DeviceSize)) (zero)
-    poke ((p `plusPtr` 112 :: Ptr DeviceSize)) (zero)
-    f
-
-instance FromCStruct GeneratedCommandsInfoNV where
-  peekCStruct p = do
-    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 16 :: Ptr PipelineBindPoint))
-    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
-    indirectCommandsLayout <- peek @IndirectCommandsLayoutNV ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV))
-    streamCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    pStreams <- peek @(Ptr IndirectCommandsStreamNV) ((p `plusPtr` 48 :: Ptr (Ptr IndirectCommandsStreamNV)))
-    pStreams' <- generateM (fromIntegral streamCount) (\i -> peekCStruct @IndirectCommandsStreamNV ((pStreams `advancePtrBytes` (16 * (i)) :: Ptr IndirectCommandsStreamNV)))
-    sequencesCount <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
-    preprocessBuffer <- peek @Buffer ((p `plusPtr` 64 :: Ptr Buffer))
-    preprocessOffset <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))
-    preprocessSize <- peek @DeviceSize ((p `plusPtr` 80 :: Ptr DeviceSize))
-    sequencesCountBuffer <- peek @Buffer ((p `plusPtr` 88 :: Ptr Buffer))
-    sequencesCountOffset <- peek @DeviceSize ((p `plusPtr` 96 :: Ptr DeviceSize))
-    sequencesIndexBuffer <- peek @Buffer ((p `plusPtr` 104 :: Ptr Buffer))
-    sequencesIndexOffset <- peek @DeviceSize ((p `plusPtr` 112 :: Ptr DeviceSize))
-    pure $ GeneratedCommandsInfoNV
-             pipelineBindPoint
-             pipeline
-             indirectCommandsLayout
-             pStreams'
-             sequencesCount
-             preprocessBuffer
-             preprocessOffset
-             preprocessSize
-             sequencesCountBuffer
-             sequencesCountOffset
-             sequencesIndexBuffer
-             sequencesIndexOffset
-
-instance Zero GeneratedCommandsInfoNV where
-  zero = GeneratedCommandsInfoNV
-           zero
-           zero
-           zero
-           mempty
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-           zero
-
-
--- | VkGeneratedCommandsMemoryRequirementsInfoNV - Structure specifying
--- parameters for the reservation of preprocess buffer space
---
--- == Valid Usage
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907#
---     @maxSequencesCount@ /must/ be less or equal to
---     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectSequenceCount@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType#
---     @sType@ /must/ be
---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV'
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext#
---     @pNext@ /must/ be @NULL@
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter#
---     @pipelineBindPoint@ /must/ be a valid
---     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter#
---     @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter#
---     @indirectCommandsLayout@ /must/ be a valid
---     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
---
--- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent# Both
---     of @indirectCommandsLayout@, and @pipeline@ /must/ have been
---     created, allocated, or retrieved from the same
---     'Vulkan.Core10.Handles.Device'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV',
--- 'Vulkan.Core10.Handles.Pipeline',
--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'getGeneratedCommandsMemoryRequirementsNV'
-data GeneratedCommandsMemoryRequirementsInfoNV = GeneratedCommandsMemoryRequirementsInfoNV
-  { -- | @pipelineBindPoint@ is the
-    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' of the
-    -- @pipeline@ that this buffer memory is intended to be used with during
-    -- the execution.
-    pipelineBindPoint :: PipelineBindPoint
-  , -- | @pipeline@ is the 'Vulkan.Core10.Handles.Pipeline' that this buffer
-    -- memory is intended to be used with during the execution.
-    pipeline :: Pipeline
-  , -- | @indirectCommandsLayout@ is the
-    -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' that this buffer
-    -- memory is intended to be used with.
-    indirectCommandsLayout :: IndirectCommandsLayoutNV
-  , -- | @maxSequencesCount@ is the maximum number of sequences that this buffer
-    -- memory in combination with the other state provided /can/ be used with.
-    maxSequencesCount :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (GeneratedCommandsMemoryRequirementsInfoNV)
-#endif
-deriving instance Show GeneratedCommandsMemoryRequirementsInfoNV
-
-instance ToCStruct GeneratedCommandsMemoryRequirementsInfoNV where
-  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p GeneratedCommandsMemoryRequirementsInfoNV{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
-    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
-    poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (indirectCommandsLayout)
-    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxSequencesCount)
-    f
-  cStructSize = 48
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero)
-    poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (zero)
-    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct GeneratedCommandsMemoryRequirementsInfoNV where
-  peekCStruct p = do
-    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 16 :: Ptr PipelineBindPoint))
-    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
-    indirectCommandsLayout <- peek @IndirectCommandsLayoutNV ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV))
-    maxSequencesCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    pure $ GeneratedCommandsMemoryRequirementsInfoNV
-             pipelineBindPoint pipeline indirectCommandsLayout maxSequencesCount
-
-instance Storable GeneratedCommandsMemoryRequirementsInfoNV where
-  sizeOf ~_ = 48
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero GeneratedCommandsMemoryRequirementsInfoNV where
-  zero = GeneratedCommandsMemoryRequirementsInfoNV
-           zero
-           zero
-           zero
-           zero
-
-
-type IndirectCommandsLayoutUsageFlagsNV = IndirectCommandsLayoutUsageFlagBitsNV
-
--- | VkIndirectCommandsLayoutUsageFlagBitsNV - Bitmask specifying allowed
--- usage of an indirect commands layout
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'IndirectCommandsLayoutUsageFlagsNV'
-newtype IndirectCommandsLayoutUsageFlagBitsNV = IndirectCommandsLayoutUsageFlagBitsNV Flags
-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
-
--- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' specifies
--- that the layout is always used with the manual preprocessing step
--- through calling 'cmdPreprocessGeneratedCommandsNV' and executed by
--- 'cmdExecuteGeneratedCommandsNV' with @isPreprocessed@ set to
--- 'Vulkan.Core10.FundamentalTypes.TRUE'.
-pattern INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000001
-
--- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV' specifies that
--- the input data for the sequences is not implicitly indexed from
--- 0..sequencesUsed but a user provided 'Vulkan.Core10.Handles.Buffer'
--- encoding the index is provided.
-pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000002
-
--- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV' specifies
--- that the processing of sequences /can/ happen at an
--- implementation-dependent order, which is not: guaranteed to be coherent
--- using the same input data.
-pattern INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000004
-
-conNameIndirectCommandsLayoutUsageFlagBitsNV :: String
-conNameIndirectCommandsLayoutUsageFlagBitsNV = "IndirectCommandsLayoutUsageFlagBitsNV"
-
-enumPrefixIndirectCommandsLayoutUsageFlagBitsNV :: String
-enumPrefixIndirectCommandsLayoutUsageFlagBitsNV = "INDIRECT_COMMANDS_LAYOUT_USAGE_"
-
-showTableIndirectCommandsLayoutUsageFlagBitsNV :: [(IndirectCommandsLayoutUsageFlagBitsNV, String)]
-showTableIndirectCommandsLayoutUsageFlagBitsNV =
-  [
-    ( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV
-    , "EXPLICIT_PREPROCESS_BIT_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV
-    , "INDEXED_SEQUENCES_BIT_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
-    , "UNORDERED_SEQUENCES_BIT_NV"
-    )
-  ]
-
-instance Show IndirectCommandsLayoutUsageFlagBitsNV where
-  showsPrec =
-    enumShowsPrec
-      enumPrefixIndirectCommandsLayoutUsageFlagBitsNV
-      showTableIndirectCommandsLayoutUsageFlagBitsNV
-      conNameIndirectCommandsLayoutUsageFlagBitsNV
-      (\(IndirectCommandsLayoutUsageFlagBitsNV x) -> x)
-      (\x -> showString "0x" . showHex x)
-
-instance Read IndirectCommandsLayoutUsageFlagBitsNV where
-  readPrec =
-    enumReadPrec
-      enumPrefixIndirectCommandsLayoutUsageFlagBitsNV
-      showTableIndirectCommandsLayoutUsageFlagBitsNV
-      conNameIndirectCommandsLayoutUsageFlagBitsNV
-      IndirectCommandsLayoutUsageFlagBitsNV
-
-type IndirectStateFlagsNV = IndirectStateFlagBitsNV
-
--- | VkIndirectStateFlagBitsNV - Bitmask specifying state that can be altered
--- on the device
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'IndirectStateFlagsNV'
-newtype IndirectStateFlagBitsNV = IndirectStateFlagBitsNV Flags
-  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
-
--- | 'INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV' allows to toggle the
--- 'Vulkan.Core10.Enums.FrontFace.FrontFace' rasterization state for
--- subsequent draw operations.
-pattern INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = IndirectStateFlagBitsNV 0x00000001
-
-conNameIndirectStateFlagBitsNV :: String
-conNameIndirectStateFlagBitsNV = "IndirectStateFlagBitsNV"
-
-enumPrefixIndirectStateFlagBitsNV :: String
-enumPrefixIndirectStateFlagBitsNV = "INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"
-
-showTableIndirectStateFlagBitsNV :: [(IndirectStateFlagBitsNV, String)]
-showTableIndirectStateFlagBitsNV = [(INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV, "")]
-
-instance Show IndirectStateFlagBitsNV where
-  showsPrec =
-    enumShowsPrec
-      enumPrefixIndirectStateFlagBitsNV
-      showTableIndirectStateFlagBitsNV
-      conNameIndirectStateFlagBitsNV
-      (\(IndirectStateFlagBitsNV x) -> x)
-      (\x -> showString "0x" . showHex x)
-
-instance Read IndirectStateFlagBitsNV where
-  readPrec =
-    enumReadPrec
-      enumPrefixIndirectStateFlagBitsNV
-      showTableIndirectStateFlagBitsNV
-      conNameIndirectStateFlagBitsNV
-      IndirectStateFlagBitsNV
-
--- | VkIndirectCommandsTokenTypeNV - Enum specifying token commands
---
--- = Description
---
--- \'
---
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | Token type                                        | Equivalent command                                                 |
--- +===================================================+====================================================================+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV'    | 'cmdBindPipelineShaderGroupNV'                                     |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV'     | -                                                                  |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV'    | 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'           |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV'   | 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'         |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV'   | 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants'             |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV'    | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'       |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV'            | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect'              |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV'      | 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV'   |
--- +---------------------------------------------------+--------------------------------------------------------------------+
--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV' | 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT' |
--- +---------------------------------------------------+--------------------------------------------------------------------+
---
--- Supported indirect command tokens
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
--- 'IndirectCommandsLayoutTokenNV'
-newtype IndirectCommandsTokenTypeNV = IndirectCommandsTokenTypeNV Int32
-  deriving newtype (Eq, Ord, Storable, Zero)
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = IndirectCommandsTokenTypeNV 0
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = IndirectCommandsTokenTypeNV 1
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = IndirectCommandsTokenTypeNV 2
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = IndirectCommandsTokenTypeNV 3
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = IndirectCommandsTokenTypeNV 4
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = IndirectCommandsTokenTypeNV 5
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = IndirectCommandsTokenTypeNV 6
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = IndirectCommandsTokenTypeNV 7
-
--- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"
-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = IndirectCommandsTokenTypeNV 1000328000
-
-{-# COMPLETE
-  INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
-  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV ::
-    IndirectCommandsTokenTypeNV
-  #-}
-
-conNameIndirectCommandsTokenTypeNV :: String
-conNameIndirectCommandsTokenTypeNV = "IndirectCommandsTokenTypeNV"
-
-enumPrefixIndirectCommandsTokenTypeNV :: String
-enumPrefixIndirectCommandsTokenTypeNV = "INDIRECT_COMMANDS_TOKEN_TYPE_"
-
-showTableIndirectCommandsTokenTypeNV :: [(IndirectCommandsTokenTypeNV, String)]
-showTableIndirectCommandsTokenTypeNV =
-  [
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
-    , "SHADER_GROUP_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
-    , "STATE_FLAGS_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
-    , "INDEX_BUFFER_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
-    , "VERTEX_BUFFER_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
-    , "PUSH_CONSTANT_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
-    , "DRAW_INDEXED_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
-    , "DRAW_NV"
-    )
-  ,
-    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
-    , "DRAW_TASKS_NV"
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address VK_KHR_buffer_device_address>
+--
+-- [__Contact__]
+--
+--     -   Christoph Kubisch
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_device_generated_commands] @pixeljetstream%0A*Here describe the issue or question you have about the VK_NV_device_generated_commands extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2020-02-20
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires Vulkan 1.1
+--
+--     -   This extension requires @VK_EXT_buffer_device_address@ or
+--         @VK_KHR_buffer_device_address@ or Vulkan 1.2 for the ability to
+--         bind vertex and index buffers on the device.
+--
+--     -   This extension interacts with @VK_NV_mesh_shader@. If the latter
+--         extension is not supported, remove the command token to initiate
+--         mesh tasks drawing in this extension.
+--
+-- [__Contributors__]
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Pierre Boudier, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Yuriy O’Donnell, Epic Games
+--
+--     -   Baldur Karlsson, Valve
+--
+--     -   Mathias Schott, NVIDIA
+--
+--     -   Tyson Smith, NVIDIA
+--
+--     -   Ingo Esser, NVIDIA
+--
+-- == Description
+--
+-- This extension allows the device to generate a number of critical
+-- graphics commands for command buffers.
+--
+-- When rendering a large number of objects, the device can be leveraged to
+-- implement a number of critical functions, like updating matrices, or
+-- implementing occlusion culling, frustum culling, front to back sorting,
+-- etc. Implementing those on the device does not require any special
+-- extension, since an application is free to define its own data
+-- structures, and just process them using shaders.
+--
+-- However, if the application desires to quickly kick off the rendering of
+-- the final stream of objects, then unextended Vulkan forces the
+-- application to read back the processed stream and issue graphics command
+-- from the host. For very large scenes, the synchronization overhead and
+-- cost to generate the command buffer can become the bottleneck. This
+-- extension allows an application to generate a device side stream of
+-- state changes and commands, and convert it efficiently into a command
+-- buffer without having to read it back to the host.
+--
+-- Furthermore, it allows incremental changes to such command buffers by
+-- manipulating only partial sections of a command stream — for example
+-- pipeline bindings. Unextended Vulkan requires re-creation of entire
+-- command buffers in such a scenario, or updates synchronized on the host.
+--
+-- The intended usage for this extension is for the application to:
+--
+-- -   create 'Vulkan.Core10.Handles.Buffer' objects and retrieve physical
+--     addresses from them via
+--     'Vulkan.Extensions.VK_EXT_buffer_device_address.getBufferDeviceAddressEXT'
+--
+-- -   create a graphics pipeline using
+--     'GraphicsPipelineShaderGroupsCreateInfoNV' for the ability to change
+--     shaders on the device.
+--
+-- -   create a 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV', which
+--     lists the 'IndirectCommandsTokenTypeNV' it wants to dynamically
+--     execute as an atomic command sequence. This step likely involves
+--     some internal device code compilation, since the intent is for the
+--     GPU to generate the command buffer in the pipeline.
+--
+-- -   fill the input stream buffers with the data for each of the inputs
+--     it needs. Each input is an array that will be filled with
+--     token-dependent data.
+--
+-- -   set up a preprocess 'Vulkan.Core10.Handles.Buffer' that uses memory
+--     according to the information retrieved via
+--     'getGeneratedCommandsMemoryRequirementsNV'.
+--
+-- -   optionally preprocess the generated content using
+--     'cmdPreprocessGeneratedCommandsNV', for example on an asynchronous
+--     compute queue, or for the purpose of re-using the data in multiple
+--     executions.
+--
+-- -   call 'cmdExecuteGeneratedCommandsNV' to create and execute the
+--     actual device commands for all sequences based on the inputs
+--     provided.
+--
+-- For each draw in a sequence, the following can be specified:
+--
+-- -   a different shader group
+--
+-- -   a number of vertex buffer bindings
+--
+-- -   a different index buffer, with an optional dynamic offset and index
+--     type
+--
+-- -   a number of different push constants
+--
+-- -   a flag that encodes the primitive winding
+--
+-- While the GPU can be faster than a CPU to generate the commands, it will
+-- not happen asynchronously to the device, therefore the primary use case
+-- is generating “less” total work (occlusion culling, classification to
+-- use specialized shaders, etc.).
+--
+-- == New Object Types
+--
+-- -   'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'
+--
+-- == New Commands
+--
+-- -   'cmdBindPipelineShaderGroupNV'
+--
+-- -   'cmdExecuteGeneratedCommandsNV'
+--
+-- -   'cmdPreprocessGeneratedCommandsNV'
+--
+-- -   'createIndirectCommandsLayoutNV'
+--
+-- -   'destroyIndirectCommandsLayoutNV'
+--
+-- -   'getGeneratedCommandsMemoryRequirementsNV'
+--
+-- == New Structures
+--
+-- -   'BindIndexBufferIndirectCommandNV'
+--
+-- -   'BindShaderGroupIndirectCommandNV'
+--
+-- -   'BindVertexBufferIndirectCommandNV'
+--
+-- -   'GeneratedCommandsInfoNV'
+--
+-- -   'GeneratedCommandsMemoryRequirementsInfoNV'
+--
+-- -   'GraphicsShaderGroupCreateInfoNV'
+--
+-- -   'IndirectCommandsLayoutCreateInfoNV'
+--
+-- -   'IndirectCommandsLayoutTokenNV'
+--
+-- -   'IndirectCommandsStreamNV'
+--
+-- -   'SetStateFlagsIndirectCommandNV'
+--
+-- -   Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':
+--
+--     -   'GraphicsPipelineShaderGroupsCreateInfoNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'
+--
+-- == New Enums
+--
+-- -   'IndirectCommandsLayoutUsageFlagBitsNV'
+--
+-- -   'IndirectCommandsTokenTypeNV'
+--
+-- -   'IndirectStateFlagBitsNV'
+--
+-- == New Bitmasks
+--
+-- -   'IndirectCommandsLayoutUsageFlagsNV'
+--
+-- -   'IndirectStateFlagsNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME'
+--
+-- -   'NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
+--
+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
+--
+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV'
+--
+-- == Issues
+--
+-- 1) How to name this extension ?
+--
+-- @VK_NV_device_generated_commands@
+--
+-- As usual, one of the hardest issues ;)
+--
+-- Alternatives: @VK_gpu_commands@, @VK_execute_commands@,
+-- @VK_device_commands@, @VK_device_execute_commands@, @VK_device_execute@,
+-- @VK_device_created_commands@, @VK_device_recorded_commands@,
+-- @VK_device_generated_commands@ @VK_indirect_generated_commands@
+--
+-- 2) Should we use a serial stateful token stream or stateless sequence
+-- descriptions?
+--
+-- Similarly to 'Vulkan.Core10.Handles.Pipeline', fixed layouts have the
+-- most likelihood to be cross-vendor adoptable. They also benefit from
+-- being processable in parallel. This is a different design choice
+-- compared to the serial command stream generated through
+-- @GL_NV_command_list@.
+--
+-- 3) How to name a sequence description?
+--
+-- @VkIndirectCommandsLayout@ as in the NVX extension predecessor.
+--
+-- Alternative: @VkGeneratedCommandsLayout@
+--
+-- 4) Do we want to provide @indirectCommands@ inputs with layout or at
+-- @indirectCommands@ time?
+--
+-- Separate layout from data as Vulkan does. Provide full flexibility for
+-- @indirectCommands@.
+--
+-- 5) Should the input be provided as SoA or AoS?
+--
+-- Both ways are desirable. AoS can provide portability to other APIs and
+-- easier to setup, while SoA allows to update individual inputs in a
+-- cache-efficient manner, when others remain static.
+--
+-- 6) How do we make developers aware of the memory requirements of
+-- implementation-dependent data used for the generated commands?
+--
+-- Make the API explicit and introduce a @preprocess@
+-- 'Vulkan.Core10.Handles.Buffer'. Developers have to allocate it using
+-- 'getGeneratedCommandsMemoryRequirementsNV'.
+--
+-- In the NVX version the requirements were hidden implicitly as part of
+-- the command buffer reservation process, however as the memory
+-- requirements can be substantial, we want to give developers the ability
+-- to budget the memory themselves. By lowering the @maxSequencesCount@ the
+-- memory consumption can be reduced. Furthermore reuse of the memory is
+-- possible, for example for doing explicit preprocessing and execution in
+-- a ping-pong fashion.
+--
+-- The actual buffer size is implementation-dependent and may be zero, i.e.
+-- not always required.
+--
+-- When making use of Graphics Shader Groups, the programs should behave
+-- similar with regards to vertex inputs, clipping and culling outputs of
+-- the geometry stage, as well as sample shading behavior in fragment
+-- shaders, to reduce the amount of the worst-case memory approximation.
+--
+-- 7) Should we allow additional per-sequence dynamic state changes?
+--
+-- Yes
+--
+-- Introduced a lightweight indirect state flag 'IndirectStateFlagBitsNV'.
+-- So far only switching front face winding state is exposed. Especially in
+-- CAD\/DCC mirrored transforms that require such changes are common, and
+-- similar flexibility is given in the ray tracing instance description.
+--
+-- The flag could be extended further, for example to switch between
+-- primitive-lists or -strips, or make other state modifications.
+--
+-- Furthermore, as new tokens can be added easily, future extension could
+-- add the ability to change any
+-- 'Vulkan.Core10.Enums.DynamicState.DynamicState'.
+--
+-- 8) How do we allow re-using already “generated” @indirectCommands@?
+--
+-- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags
+-- data. Set the @isPreprocessed@ to true in
+-- 'cmdExecuteGeneratedCommandsNV'.
+--
+-- 9) Under which conditions is 'cmdExecuteGeneratedCommandsNV' legal?
+--
+-- It behaves like a regular draw call command.
+--
+-- 10) Is 'cmdPreprocessGeneratedCommandsNV' copying the input data or
+-- referencing it?
+--
+-- There are multiple implementations possible:
+--
+-- -   one could have some emulation code that parses the inputs, and
+--     generates an output command buffer, therefore copying the inputs.
+--
+-- -   one could just reference the inputs, and have the processing done in
+--     pipe at execution time.
+--
+-- If the data is mandated to be copied, then it puts a penalty on
+-- implementation that could process the inputs directly in pipe. If the
+-- data is “referenced”, then it allows both types of implementation.
+--
+-- The inputs are “referenced”, and /must/ not be modified after the call
+-- to 'cmdExecuteGeneratedCommandsNV' has completed.
+--
+-- 11) Which buffer usage flags are required for the buffers referenced by
+-- 'GeneratedCommandsInfoNV' ?
+--
+-- Reuse existing
+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--
+-- -   'GeneratedCommandsInfoNV'::@preprocessBuffer@
+--
+-- -   'GeneratedCommandsInfoNV'::@sequencesCountBuffer@
+--
+-- -   'GeneratedCommandsInfoNV'::@sequencesIndexBuffer@
+--
+-- -   'IndirectCommandsStreamNV'::@buffer@
+--
+-- 12) In which pipeline stage does the device generated command expansion
+-- happen?
+--
+-- 'cmdPreprocessGeneratedCommandsNV' is treated as if it occurs in a
+-- separate logical pipeline from either graphics or compute, and that
+-- pipeline only includes
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TOP_OF_PIPE_BIT',
+-- a new stage
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV',
+-- and
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT'.
+-- This new stage has two corresponding new access types,
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
+-- and
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV',
+-- used to synchronize reading the buffer inputs and writing the preprocess
+-- memory output.
+--
+-- The generated output written in the preprocess buffer memory by
+-- 'cmdExecuteGeneratedCommandsNV' is considered to be consumed by the
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
+-- pipeline stage.
+--
+-- Thus, to synchronize from writing the input buffers to preprocessing via
+-- 'cmdPreprocessGeneratedCommandsNV', use:
+--
+-- -   @dstStageMask@ =
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
+--
+-- -   @dstAccessMask@ =
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
+--
+-- To synchronize from 'cmdPreprocessGeneratedCommandsNV' to executing the
+-- generated commands by 'cmdExecuteGeneratedCommandsNV', use:
+--
+-- -   @srcStageMask@ =
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
+--
+-- -   @srcAccessMask@ =
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'
+--
+-- -   @dstStageMask@ =
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
+--
+-- -   @dstAccessMask@ =
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'
+--
+-- When 'cmdExecuteGeneratedCommandsNV' is used with a @isPreprocessed@ of
+-- 'Vulkan.Core10.FundamentalTypes.FALSE', the generated commands are
+-- implicitly preprocessed, therefore one only needs to synchronize the
+-- inputs via:
+--
+-- -   @dstStageMask@ =
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
+--
+-- -   @dstAccessMask@ =
+--     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'
+--
+-- 13) What if most token data is “static”, but we frequently want to
+-- render a subsection?
+--
+-- Added “sequencesIndexBuffer”. This allows to easier sort and filter what
+-- should actually be executed.
+--
+-- 14) What are the changes compared to the previous NVX extension?
+--
+-- -   Compute dispatch support was removed (was never implemented in
+--     drivers). There are different approaches how dispatching from the
+--     device should work, hence we defer this to a future extension.
+--
+-- -   The @ObjectTableNVX@ was replaced by using physical buffer addresses
+--     and introducing Shader Groups for the graphics pipeline.
+--
+-- -   Less state changes are possible overall, but the important
+--     operations are still there (reduces complexity of implementation).
+--
+-- -   The API was redesigned so all inputs must be passed at both
+--     preprocessing and execution time (this was implicit in NVX, now it
+--     is explicit)
+--
+-- -   The reservation of intermediate command space is now mandatory and
+--     explicit through a preprocess buffer.
+--
+-- -   The 'IndirectStateFlagBitsNV' were introduced
+--
+-- 15) When porting from other APIs, their indirect buffers may use
+-- different enums, for example for index buffer types. How to solve this?
+--
+-- Added “pIndexTypeValues” to map custom @uint32_t@ values to
+-- corresponding 'Vulkan.Core10.Enums.IndexType.IndexType'.
+--
+-- 16) Do we need more shader group state overrides?
+--
+-- The NVX version allowed all PSO states to be different, however as the
+-- goal is not to replace all state setup, but focus on highly-frequent
+-- state changes for drawing lots of objects, we reduced the amount of
+-- state overrides. Especially VkPipelineLayout as well as VkRenderPass
+-- configuration should be left static, the rest is still open for
+-- discussion.
+--
+-- The current focus is just to allow VertexInput changes as well as
+-- shaders, while all shader groups use the same shader stages.
+--
+-- Too much flexibility will increase the test coverage requirement as
+-- well. However, further extensions could allow more dynamic state as
+-- well.
+--
+-- 17) Do we need more detailed physical device feature queries\/enables?
+--
+-- An EXT version would need detailed implementor feedback to come up with
+-- a good set of features. Please contact us if you are interested, we are
+-- happy to make more features optional, or add further restrictions to
+-- reduce the minimum feature set of an EXT.
+--
+-- 18) Is there an interaction with VK_KHR_pipeline_library planned?
+--
+-- Yes, a future version of this extension will detail the interaction,
+-- once VK_KHR_pipeline_library is no longer provisional.
+--
+-- == Example Code
+--
+-- Open-Source samples illustrating the usage of the extension can be found
+-- at the following location (may not yet exist at time of writing):
+--
+-- <https://github.com/nvpro-samples/vk_device_generated_cmds>
+--
+-- == Version History
+--
+-- -   Revision 1, 2020-02-20 (Christoph Kubisch)
+--
+--     -   Initial version
+--
+-- -   Revision 2, 2020-03-09 (Christoph Kubisch)
+--
+--     -   Remove VK_EXT_debug_report interactions
+--
+-- -   Revision 3, 2020-03-09 (Christoph Kubisch)
+--
+--     -   Fix naming VkPhysicalDeviceGenerated to
+--         VkPhysicalDeviceDeviceGenerated
+--
+-- == See Also
+--
+-- 'BindIndexBufferIndirectCommandNV', 'BindShaderGroupIndirectCommandNV',
+-- 'BindVertexBufferIndirectCommandNV', 'GeneratedCommandsInfoNV',
+-- 'GeneratedCommandsMemoryRequirementsInfoNV',
+-- 'GraphicsPipelineShaderGroupsCreateInfoNV',
+-- 'GraphicsShaderGroupCreateInfoNV', 'IndirectCommandsLayoutCreateInfoNV',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV',
+-- 'IndirectCommandsLayoutTokenNV',
+-- 'IndirectCommandsLayoutUsageFlagBitsNV',
+-- 'IndirectCommandsLayoutUsageFlagsNV', 'IndirectCommandsStreamNV',
+-- 'IndirectCommandsTokenTypeNV', 'IndirectStateFlagBitsNV',
+-- 'IndirectStateFlagsNV',
+-- 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',
+-- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',
+-- 'SetStateFlagsIndirectCommandNV', 'cmdBindPipelineShaderGroupNV',
+-- 'cmdExecuteGeneratedCommandsNV', 'cmdPreprocessGeneratedCommandsNV',
+-- 'createIndirectCommandsLayoutNV', 'destroyIndirectCommandsLayoutNV',
+-- 'getGeneratedCommandsMemoryRequirementsNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_device_generated_commands  ( cmdExecuteGeneratedCommandsNV
+                                                          , cmdPreprocessGeneratedCommandsNV
+                                                          , cmdBindPipelineShaderGroupNV
+                                                          , getGeneratedCommandsMemoryRequirementsNV
+                                                          , createIndirectCommandsLayoutNV
+                                                          , withIndirectCommandsLayoutNV
+                                                          , destroyIndirectCommandsLayoutNV
+                                                          , PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(..)
+                                                          , PhysicalDeviceDeviceGeneratedCommandsPropertiesNV(..)
+                                                          , GraphicsShaderGroupCreateInfoNV(..)
+                                                          , GraphicsPipelineShaderGroupsCreateInfoNV(..)
+                                                          , BindShaderGroupIndirectCommandNV(..)
+                                                          , BindIndexBufferIndirectCommandNV(..)
+                                                          , BindVertexBufferIndirectCommandNV(..)
+                                                          , SetStateFlagsIndirectCommandNV(..)
+                                                          , IndirectCommandsStreamNV(..)
+                                                          , IndirectCommandsLayoutTokenNV(..)
+                                                          , IndirectCommandsLayoutCreateInfoNV(..)
+                                                          , GeneratedCommandsInfoNV(..)
+                                                          , GeneratedCommandsMemoryRequirementsInfoNV(..)
+                                                          , IndirectCommandsLayoutUsageFlagsNV
+                                                          , IndirectCommandsLayoutUsageFlagBitsNV( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV
+                                                                                                 , INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV
+                                                                                                 , INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
+                                                                                                 , ..
+                                                                                                 )
+                                                          , IndirectStateFlagsNV
+                                                          , IndirectStateFlagBitsNV( INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
+                                                                                   , ..
+                                                                                   )
+                                                          , IndirectCommandsTokenTypeNV( INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV
+                                                                                       , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV
+                                                                                       , ..
+                                                                                       )
+                                                          , NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION
+                                                          , pattern NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION
+                                                          , NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
+                                                          , pattern NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
+                                                          , IndirectCommandsLayoutNV(..)
+                                                          ) where
+
+import Data.Bits (Bits)
+import Data.Bits (FiniteBits)
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Exception.Base (bracket)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Alloc (callocBytes)
+import Foreign.Marshal.Alloc (free)
+import Foreign.Marshal.Utils (maybePeek)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showString)
+import GHC.Show (showsPrec)
+import Numeric (showHex)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+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 Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.CStruct.Extends (peekSomeCStruct)
+import Vulkan.CStruct.Extends (pokeSomeCStruct)
+import Vulkan.CStruct.Extends (withSomeCStruct)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.FundamentalTypes (Bool32(..))
+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.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Core10.FundamentalTypes (DeviceAddress)
+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindPipelineShaderGroupNV))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdExecuteGeneratedCommandsNV))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdPreprocessGeneratedCommandsNV))
+import Vulkan.Dynamic (DeviceCmds(pVkCreateIndirectCommandsLayoutNV))
+import Vulkan.Dynamic (DeviceCmds(pVkDestroyIndirectCommandsLayoutNV))
+import Vulkan.Dynamic (DeviceCmds(pVkGetGeneratedCommandsMemoryRequirementsNV))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.Core10.FundamentalTypes (Flags)
+import Vulkan.Core10.Enums.IndexType (IndexType)
+import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)
+import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV(..))
+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.Core10.Handles (Pipeline)
+import Vulkan.Core10.Handles (Pipeline(..))
+import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
+import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))
+import Vulkan.Core10.Handles (PipelineLayout)
+import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
+import Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)
+import Vulkan.Core10.Pipeline (PipelineVertexInputStateCreateInfo)
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdExecuteGeneratedCommandsNV
+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO ()
+
+-- | vkCmdExecuteGeneratedCommandsNV - Generate and execute commands on the
+-- device
+--
+-- = Description
+--
+-- If the 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV' flag
+-- was used to create the
+-- 'GeneratedCommandsInfoNV'::@indirectCommandsLayout@ then the order of
+-- execution of individual draws through this command /may/ execute in any
+-- order, and /may/ not necessarily be in the same order as specified in
+-- 'GeneratedCommandsInfoNV'::@pStreams@.
+--
+-- The order of execution of individual dispatches through this command
+-- /may/ execute in any order and /may/ not necessarily be in the same
+-- order as specified in 'GeneratedCommandsInfoNV'::@pStreams@.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08600# For each set /n/
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08604# Descriptors in
+--     bound descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-vkCmdExecuteGeneratedCommandsNV-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdExecuteGeneratedCommandsNV-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdExecuteGeneratedCommandsNV-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdExecuteGeneratedCommandsNV-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09003# If an attachment
+--     is written by any prior command in this subpass or by the load,
+--     store, or resolve operations for this subpass, it /must/ not be
+--     accessed in any way other than as an attachment, storage image, or
+--     sampled image by this command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07831# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07832# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07833# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08617# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08618# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08619# If a shader object
+--     that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07834# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08620# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07835# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08621# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07836# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08622# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07837# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08623# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07838# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08624# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07839# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08625# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08626# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07840# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08627# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07841# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08628# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07843# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08629# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07844# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08630# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07845# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08631# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07846# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08632# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07847# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08633# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07848# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08634# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08635# If a shader object
+--     is bound to any graphics stage, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-09232# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08636# If a shader object
+--     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08637# If a shader object
+--     is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07878# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08638# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08639# If a shader object
+--     is bound to any graphics stage, 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08640# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08641# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08643# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08644# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08876# If a shader object
+--     is bound to any graphics stage, the current render pass instance
+--     /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362# If
+--     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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09366# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370# If there
+--     is a shader object bound to any graphics stage, and the current
+--     render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371# If there
+--     is a shader object bound to any graphics stage, and the current
+--     render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-07880# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07881# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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
+--     @rasterizationSamples@ for 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-vkCmdExecuteGeneratedCommandsNV-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
+--     @rasterizationSamples@ for 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-vkCmdExecuteGeneratedCommandsNV-pNext-07935# If this command
+--     has been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-pColorAttachments-08963# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-08965# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-09237# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08651# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08652# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08653# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08919#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08654# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08920#
+--     If a shader object is bound to any graphics stage, and the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08657# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08658# If a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08659# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07849# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdExecuteGeneratedCommandsNV-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07850# If dynamic state
+--     was inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08684# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08685# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08686# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08687# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08688# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08689# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08690# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08693# If there is no
+--     bound graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08694# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08695# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08696# If there is no
+--     bound graphics pipeline, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08878# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08879# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08880# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08716# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09116# If a shader object
+--     is bound to any graphics stage or the currently bound graphics
+--     pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input
+--     bindings accessed via vertex input variables declared in the vertex
+--     shader entry point’s interface /must/ have either valid or
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04008# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>
+--     feature is not enabled, all vertex input bindings accessed via
+--     vertex input variables declared in the vertex shader entry point’s
+--     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02721# For a given vertex
+--     buffer binding, any attribute data fetched /must/ be entirely
+--     contained within the corresponding vertex buffer binding, as
+--     described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07842# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'
+--     dynamic state enabled and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     @primitiveTopology@ parameter of
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ be of the same
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>
+--     as the pipeline
+--     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@
+--     state
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04912# If the bound
+--     graphics pipeline was created with both the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     and
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic states enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913# If the bound
+--     graphics pipeline was created with the
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
+--     dynamic state enabled, but not the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command, and the @pStrides@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'
+--     /must/ not be @NULL@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08881# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04914# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     draw command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then all variables with the @Input@ storage
+--     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ contain a location in
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, then the numeric type associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-format-08936# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then the scalar width associated with all
+--     @Input@ variables of the corresponding @Location@ in the @Vertex@
+--     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-format-08937# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and the scalar width associated with a
+--     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@
+--     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     /must/ have a 64-bit component
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09203# If there is a
+--     shader object bound to a graphics stage or the currently bound
+--     graphics pipeline was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, and
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@
+--     has a 64-bit component, then all @Input@ variables at the
+--     corresponding @Location@ in the @Vertex@ @Execution@ @Model@
+--     @OpEntryPoint@ /must/ not use components that are not present in the
+--     format
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08882# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04875# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08883# If a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-08884#
+--     If a shader object is bound to any graphics stage, and the most
+--     recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE',
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481# 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_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08885# There /must/ be no
+--     shader object bound to either of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908# If
+--     @isPreprocessed@ is 'Vulkan.Core10.FundamentalTypes.TRUE' then
+--     'cmdPreprocessGeneratedCommandsNV' /must/ have already been executed
+--     on the device, using the same @pGeneratedCommandsInfo@ content as
+--     well as the content of the input buffers it references (all except
+--     'GeneratedCommandsInfoNV'::@preprocessBuffer@). Furthermore
+--     @pGeneratedCommandsInfo@\`s @indirectCommandsLayout@ /must/ have
+--     been created with the
+--     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' bit set
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909#
+--     'GeneratedCommandsInfoNV'::@pipeline@ /must/ match the current bound
+--     pipeline at 'GeneratedCommandsInfoNV'::@pipelineBindPoint@
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02910# Transform feedback
+--     /must/ not be active
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter#
+--     @pGeneratedCommandsInfo@ /must/ be a valid pointer to a valid
+--     'GeneratedCommandsInfoNV' structure
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-renderpass# This command
+--     /must/ only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | Indirection                                                                                                                            |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'GeneratedCommandsInfoNV'
+cmdExecuteGeneratedCommandsNV :: forall io
+                               . (MonadIO io)
+                              => -- | @commandBuffer@ is the command buffer into which the command is
+                                 -- recorded.
+                                 CommandBuffer
+                              -> -- | @isPreprocessed@ represents whether the input data has already been
+                                 -- preprocessed on the device. If it is
+                                 -- 'Vulkan.Core10.FundamentalTypes.FALSE' this command will implicitly
+                                 -- trigger the preprocessing step, otherwise not.
+                                 ("isPreprocessed" ::: Bool)
+                              -> -- | @pGeneratedCommandsInfo@ is a pointer to a 'GeneratedCommandsInfoNV'
+                                 -- structure containing parameters affecting the generation of commands.
+                                 GeneratedCommandsInfoNV
+                              -> io ()
+cmdExecuteGeneratedCommandsNV commandBuffer
+                                isPreprocessed
+                                generatedCommandsInfo = liftIO . evalContT $ do
+  let vkCmdExecuteGeneratedCommandsNVPtr = pVkCmdExecuteGeneratedCommandsNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdExecuteGeneratedCommandsNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteGeneratedCommandsNV is null" Nothing Nothing
+  let vkCmdExecuteGeneratedCommandsNV' = mkVkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNVPtr
+  pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)
+  lift $ traceAroundEvent "vkCmdExecuteGeneratedCommandsNV" (vkCmdExecuteGeneratedCommandsNV'
+                                                               (commandBufferHandle (commandBuffer))
+                                                               (boolToBool32 (isPreprocessed))
+                                                               pGeneratedCommandsInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdPreprocessGeneratedCommandsNV
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr GeneratedCommandsInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Ptr GeneratedCommandsInfoNV -> IO ()
+
+-- | vkCmdPreprocessGeneratedCommandsNV - Performs preprocessing for
+-- generated commands
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927#
+--     @pGeneratedCommandsInfo@\`s @indirectCommandsLayout@ /must/ have
+--     been created with the
+--     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' bit set
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter#
+--     @pGeneratedCommandsInfo@ /must/ be a valid pointer to a valid
+--     'GeneratedCommandsInfoNV' structure
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-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-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass# This command
+--     /must/ only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdPreprocessGeneratedCommandsNV-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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'GeneratedCommandsInfoNV'
+cmdPreprocessGeneratedCommandsNV :: forall io
+                                  . (MonadIO io)
+                                 => -- | @commandBuffer@ is the command buffer which does the preprocessing.
+                                    CommandBuffer
+                                 -> -- | @pGeneratedCommandsInfo@ is a pointer to a 'GeneratedCommandsInfoNV'
+                                    -- structure containing parameters affecting the preprocessing step.
+                                    GeneratedCommandsInfoNV
+                                 -> io ()
+cmdPreprocessGeneratedCommandsNV commandBuffer
+                                   generatedCommandsInfo = liftIO . evalContT $ do
+  let vkCmdPreprocessGeneratedCommandsNVPtr = pVkCmdPreprocessGeneratedCommandsNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCmdPreprocessGeneratedCommandsNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPreprocessGeneratedCommandsNV is null" Nothing Nothing
+  let vkCmdPreprocessGeneratedCommandsNV' = mkVkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNVPtr
+  pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)
+  lift $ traceAroundEvent "vkCmdPreprocessGeneratedCommandsNV" (vkCmdPreprocessGeneratedCommandsNV'
+                                                                  (commandBufferHandle (commandBuffer))
+                                                                  pGeneratedCommandsInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdBindPipelineShaderGroupNV
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> Word32 -> IO ()
+
+-- | vkCmdBindPipelineShaderGroupNV - Bind a pipeline object
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893# @groupIndex@
+--     /must/ be @0@ or less than the effective
+--     'GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ including
+--     the referenced pipelines
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894# The
+--     @pipelineBindPoint@ /must/ be
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895# The same
+--     restrictions as
+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline' apply as if
+--     the bound pipeline was created only with the Shader Group from the
+--     @groupIndex@ information
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter# @pipeline@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-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-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics, or compute operations
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdBindPipelineShaderGroupNV-commonparent# Both of
+--     @commandBuffer@, and @pipeline@ /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                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'
+cmdBindPipelineShaderGroupNV :: forall io
+                              . (MonadIO io)
+                             => -- | @commandBuffer@ is the command buffer that the pipeline will be bound
+                                -- to.
+                                CommandBuffer
+                             -> -- | @pipelineBindPoint@ is a
+                                -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+                                -- specifying the bind point to which the pipeline will be bound.
+                                PipelineBindPoint
+                             -> -- | @pipeline@ is the pipeline to be bound.
+                                Pipeline
+                             -> -- | @groupIndex@ is the shader group to be bound.
+                                ("groupIndex" ::: Word32)
+                             -> io ()
+cmdBindPipelineShaderGroupNV commandBuffer
+                               pipelineBindPoint
+                               pipeline
+                               groupIndex = liftIO $ do
+  let vkCmdBindPipelineShaderGroupNVPtr = pVkCmdBindPipelineShaderGroupNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdBindPipelineShaderGroupNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipelineShaderGroupNV is null" Nothing Nothing
+  let vkCmdBindPipelineShaderGroupNV' = mkVkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNVPtr
+  traceAroundEvent "vkCmdBindPipelineShaderGroupNV" (vkCmdBindPipelineShaderGroupNV'
+                                                       (commandBufferHandle (commandBuffer))
+                                                       (pipelineBindPoint)
+                                                       (pipeline)
+                                                       (groupIndex))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetGeneratedCommandsMemoryRequirementsNV
+  :: FunPtr (Ptr Device_T -> Ptr GeneratedCommandsMemoryRequirementsInfoNV -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr GeneratedCommandsMemoryRequirementsInfoNV -> Ptr (SomeStruct MemoryRequirements2) -> IO ()
+
+-- | vkGetGeneratedCommandsMemoryRequirementsNV - Retrieve the buffer
+-- allocation requirements for generated commands
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074# If
+--     @pInfo@::@pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCompute ::deviceGeneratedCompute>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter#
+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter#
+--     @pInfo@ /must/ be a valid pointer to a valid
+--     'GeneratedCommandsMemoryRequirementsInfoNV' structure
+--
+-- -   #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter#
+--     @pMemoryRequirements@ /must/ be a valid pointer to a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
+--     structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Device',
+-- 'GeneratedCommandsMemoryRequirementsInfoNV',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
+getGeneratedCommandsMemoryRequirementsNV :: forall a io
+                                          . ( Extendss MemoryRequirements2 a
+                                            , PokeChain a
+                                            , PeekChain a
+                                            , MonadIO io )
+                                         => -- | @device@ is the logical device that owns the buffer.
+                                            Device
+                                         -> -- | @pInfo@ is a pointer to a 'GeneratedCommandsMemoryRequirementsInfoNV'
+                                            -- structure containing parameters required for the memory requirements
+                                            -- query.
+                                            GeneratedCommandsMemoryRequirementsInfoNV
+                                         -> io (MemoryRequirements2 a)
+getGeneratedCommandsMemoryRequirementsNV device info = liftIO . evalContT $ do
+  let vkGetGeneratedCommandsMemoryRequirementsNVPtr = pVkGetGeneratedCommandsMemoryRequirementsNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetGeneratedCommandsMemoryRequirementsNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetGeneratedCommandsMemoryRequirementsNV is null" Nothing Nothing
+  let vkGetGeneratedCommandsMemoryRequirementsNV' = mkVkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNVPtr
+  pInfo <- ContT $ withCStruct (info)
+  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))
+  lift $ traceAroundEvent "vkGetGeneratedCommandsMemoryRequirementsNV" (vkGetGeneratedCommandsMemoryRequirementsNV'
+                                                                          (deviceHandle (device))
+                                                                          pInfo
+                                                                          (forgetExtensions (pPMemoryRequirements)))
+  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements
+  pure $ (pMemoryRequirements)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCreateIndirectCommandsLayoutNV
+  :: FunPtr (Ptr Device_T -> Ptr IndirectCommandsLayoutCreateInfoNV -> Ptr AllocationCallbacks -> Ptr IndirectCommandsLayoutNV -> IO Result) -> Ptr Device_T -> Ptr IndirectCommandsLayoutCreateInfoNV -> Ptr AllocationCallbacks -> Ptr IndirectCommandsLayoutNV -> IO Result
+
+-- | vkCreateIndirectCommandsLayoutNV - Create an indirect command layout
+-- object
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutNV-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter#
+--     @pCreateInfo@ /must/ be a valid pointer to a valid
+--     'IndirectCommandsLayoutCreateInfoNV' structure
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter#
+--     @pIndirectCommandsLayout@ /must/ be a valid pointer to a
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device', 'IndirectCommandsLayoutCreateInfoNV',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'
+createIndirectCommandsLayoutNV :: forall io
+                                . (MonadIO io)
+                               => -- | @device@ is the logical device that creates the indirect command layout.
+                                  Device
+                               -> -- | @pCreateInfo@ is a pointer to a 'IndirectCommandsLayoutCreateInfoNV'
+                                  -- structure containing parameters affecting creation of the indirect
+                                  -- command layout.
+                                  IndirectCommandsLayoutCreateInfoNV
+                               -> -- | @pAllocator@ controls host memory allocation as described in the
+                                  -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
+                                  -- chapter.
+                                  ("allocator" ::: Maybe AllocationCallbacks)
+                               -> io (IndirectCommandsLayoutNV)
+createIndirectCommandsLayoutNV device
+                                 createInfo
+                                 allocator = liftIO . evalContT $ do
+  let vkCreateIndirectCommandsLayoutNVPtr = pVkCreateIndirectCommandsLayoutNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkCreateIndirectCommandsLayoutNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateIndirectCommandsLayoutNV is null" Nothing Nothing
+  let vkCreateIndirectCommandsLayoutNV' = mkVkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNVPtr
+  pCreateInfo <- ContT $ withCStruct (createInfo)
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  pPIndirectCommandsLayout <- ContT $ bracket (callocBytes @IndirectCommandsLayoutNV 8) free
+  r <- lift $ traceAroundEvent "vkCreateIndirectCommandsLayoutNV" (vkCreateIndirectCommandsLayoutNV'
+                                                                     (deviceHandle (device))
+                                                                     pCreateInfo
+                                                                     pAllocator
+                                                                     (pPIndirectCommandsLayout))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pIndirectCommandsLayout <- lift $ peek @IndirectCommandsLayoutNV pPIndirectCommandsLayout
+  pure $ (pIndirectCommandsLayout)
+
+-- | A convenience wrapper to make a compatible pair of calls to
+-- 'createIndirectCommandsLayoutNV' and 'destroyIndirectCommandsLayoutNV'
+--
+-- To ensure that 'destroyIndirectCommandsLayoutNV' is always called: pass
+-- 'Control.Exception.bracket' (or the allocate function from your
+-- favourite resource management library) as the last argument.
+-- To just extract the pair pass '(,)' as the last argument.
+--
+withIndirectCommandsLayoutNV :: forall io r . MonadIO io => Device -> IndirectCommandsLayoutCreateInfoNV -> Maybe AllocationCallbacks -> (io IndirectCommandsLayoutNV -> (IndirectCommandsLayoutNV -> io ()) -> r) -> r
+withIndirectCommandsLayoutNV device pCreateInfo pAllocator b =
+  b (createIndirectCommandsLayoutNV device pCreateInfo pAllocator)
+    (\(o0) -> destroyIndirectCommandsLayoutNV device o0 pAllocator)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkDestroyIndirectCommandsLayoutNV
+  :: FunPtr (Ptr Device_T -> IndirectCommandsLayoutNV -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> IndirectCommandsLayoutNV -> Ptr AllocationCallbacks -> IO ()
+
+-- | vkDestroyIndirectCommandsLayoutNV - Destroy an indirect commands layout
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938#
+--     All submitted commands that refer to @indirectCommandsLayout@ /must/
+--     have completed execution
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939#
+--     If 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @indirectCommandsLayout@ was created, a compatible set
+--     of callbacks /must/ be provided here
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940#
+--     If no 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were
+--     provided when @indirectCommandsLayout@ was created, @pAllocator@
+--     /must/ be @NULL@
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter# @device@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter#
+--     If @indirectCommandsLayout@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @indirectCommandsLayout@
+--     /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameter# If
+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer
+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
+--     structure
+--
+-- -   #VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent#
+--     If @indirectCommandsLayout@ is a valid handle, it /must/ have been
+--     created, allocated, or retrieved from @device@
+--
+-- == Host Synchronization
+--
+-- -   Host access to @indirectCommandsLayout@ /must/ be externally
+--     synchronized
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV'
+destroyIndirectCommandsLayoutNV :: forall io
+                                 . (MonadIO io)
+                                => -- | @device@ is the logical device that destroys the layout.
+                                   Device
+                                -> -- | @indirectCommandsLayout@ is the layout to destroy.
+                                   IndirectCommandsLayoutNV
+                                -> -- | @pAllocator@ controls host memory allocation as described in the
+                                   -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>
+                                   -- chapter.
+                                   ("allocator" ::: Maybe AllocationCallbacks)
+                                -> io ()
+destroyIndirectCommandsLayoutNV device
+                                  indirectCommandsLayout
+                                  allocator = liftIO . evalContT $ do
+  let vkDestroyIndirectCommandsLayoutNVPtr = pVkDestroyIndirectCommandsLayoutNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkDestroyIndirectCommandsLayoutNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyIndirectCommandsLayoutNV is null" Nothing Nothing
+  let vkDestroyIndirectCommandsLayoutNV' = mkVkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNVPtr
+  pAllocator <- case (allocator) of
+    Nothing -> pure nullPtr
+    Just j -> ContT $ withCStruct (j)
+  lift $ traceAroundEvent "vkDestroyIndirectCommandsLayoutNV" (vkDestroyIndirectCommandsLayoutNV'
+                                                                 (deviceHandle (device))
+                                                                 (indirectCommandsLayout)
+                                                                 pAllocator)
+  pure $ ()
+
+
+-- | VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - Structure describing
+-- the device-generated commands features that can be supported by an
+-- implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' 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. 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' /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_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+  { -- | #features-deviceGeneratedCommands# @deviceGeneratedCommands@ indicates
+    -- whether the implementation supports functionality to generate commands
+    -- on the device. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
+    deviceGeneratedCommands :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCommands))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
+  peekCStruct p = do
+    deviceGeneratedCommands <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+             (bool32ToBool deviceGeneratedCommands)
+
+instance Storable PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDeviceGeneratedCommandsFeaturesNV where
+  zero = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+           zero
+
+
+-- | VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - Structure
+-- describing push descriptor limits that can be supported by an
+-- implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV' 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_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
+  { -- | @maxGraphicsShaderGroupCount@ is the maximum number of shader groups in
+    -- 'GraphicsPipelineShaderGroupsCreateInfoNV'.
+    maxGraphicsShaderGroupCount :: Word32
+  , -- | @maxIndirectSequenceCount@ is the maximum number of sequences in
+    -- 'GeneratedCommandsInfoNV' and in
+    -- 'GeneratedCommandsMemoryRequirementsInfoNV'.
+    maxIndirectSequenceCount :: Word32
+  , -- | @maxIndirectCommandsTokenCount@ is the maximum number of tokens in
+    -- 'IndirectCommandsLayoutCreateInfoNV'.
+    maxIndirectCommandsTokenCount :: Word32
+  , -- | @maxIndirectCommandsStreamCount@ is the maximum number of streams in
+    -- 'IndirectCommandsLayoutCreateInfoNV'.
+    maxIndirectCommandsStreamCount :: Word32
+  , -- | @maxIndirectCommandsTokenOffset@ is the maximum offset in
+    -- 'IndirectCommandsLayoutTokenNV'.
+    maxIndirectCommandsTokenOffset :: Word32
+  , -- | @maxIndirectCommandsStreamStride@ is the maximum stream stride in
+    -- 'IndirectCommandsLayoutCreateInfoNV'.
+    maxIndirectCommandsStreamStride :: Word32
+  , -- | @minSequencesCountBufferOffsetAlignment@ is the minimum alignment for
+    -- memory addresses which /can/ be used in 'GeneratedCommandsInfoNV'.
+    minSequencesCountBufferOffsetAlignment :: Word32
+  , -- | @minSequencesIndexBufferOffsetAlignment@ is the minimum alignment for
+    -- memory addresses which /can/ be used in 'GeneratedCommandsInfoNV'.
+    minSequencesIndexBufferOffsetAlignment :: Word32
+  , -- | @minIndirectCommandsBufferOffsetAlignment@ is the minimum alignment for
+    -- memory addresses used in 'IndirectCommandsStreamNV', and as preprocess
+    -- buffer in 'GeneratedCommandsInfoNV'.
+    minIndirectCommandsBufferOffsetAlignment :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
+#endif
+deriving instance Show PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsPropertiesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxGraphicsShaderGroupCount)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxIndirectSequenceCount)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxIndirectCommandsTokenCount)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxIndirectCommandsStreamCount)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxIndirectCommandsTokenOffset)
+    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxIndirectCommandsStreamStride)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (minSequencesCountBufferOffsetAlignment)
+    poke ((p `plusPtr` 44 :: Ptr Word32)) (minSequencesIndexBufferOffsetAlignment)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (minIndirectCommandsBufferOffsetAlignment)
+    f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
+  peekCStruct p = do
+    maxGraphicsShaderGroupCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    maxIndirectSequenceCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    maxIndirectCommandsTokenCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    maxIndirectCommandsStreamCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    maxIndirectCommandsTokenOffset <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    maxIndirectCommandsStreamStride <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
+    minSequencesCountBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    minSequencesIndexBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
+    minIndirectCommandsBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
+    pure $ PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
+             maxGraphicsShaderGroupCount
+             maxIndirectSequenceCount
+             maxIndirectCommandsTokenCount
+             maxIndirectCommandsStreamCount
+             maxIndirectCommandsTokenOffset
+             maxIndirectCommandsStreamStride
+             minSequencesCountBufferOffsetAlignment
+             minSequencesIndexBufferOffsetAlignment
+             minIndirectCommandsBufferOffsetAlignment
+
+instance Storable PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
+  sizeOf ~_ = 56
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where
+  zero = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkGraphicsShaderGroupCreateInfoNV - Structure specifying override
+-- parameters for each shader group
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888# For
+--     @stageCount@, the same restrictions as in
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@stageCount@
+--     apply
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889# For
+--     @pStages@, the same restrictions as in
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ apply
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890# For
+--     @pVertexInputState@, the same restrictions as in
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@
+--     apply
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891#
+--     For @pTessellationState@, the same restrictions as in
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pTessellationState@
+--     apply
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType# @sType@ /must/
+--     be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV'
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext# @pNext@ /must/
+--     be @NULL@
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter# @pStages@
+--     /must/ be a valid pointer to an array of @stageCount@ valid
+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures
+--
+-- -   #VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength#
+--     @stageCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'GraphicsPipelineShaderGroupsCreateInfoNV',
+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',
+-- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo',
+-- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data GraphicsShaderGroupCreateInfoNV = GraphicsShaderGroupCreateInfoNV
+  { -- | @pStages@ is a pointer to an array
+    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures
+    -- specifying the set of the shader stages to be included in this shader
+    -- group.
+    stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
+  , -- | @pVertexInputState@ is a pointer to a
+    -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.
+    vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)
+  , -- | @pTessellationState@ is a pointer to a
+    -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' structure,
+    -- and is ignored if the shader group does not include a tessellation
+    -- control shader stage and tessellation evaluation shader stage.
+    tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GraphicsShaderGroupCreateInfoNV)
+#endif
+deriving instance Show GraphicsShaderGroupCreateInfoNV
+
+instance ToCStruct GraphicsShaderGroupCreateInfoNV where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GraphicsShaderGroupCreateInfoNV{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (stages)) :: Word32))
+    pPStages' <- ContT $ allocaBytes @(PipelineShaderStageCreateInfo _) ((Data.Vector.length (stages)) * 48)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPStages' `plusPtr` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _))) (e) . ($ ())) (stages)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _)))) (pPStages')
+    pVertexInputState'' <- case (vertexInputState) of
+      Nothing -> pure nullPtr
+      Just j -> ContT @_ @_ @(Ptr (PipelineVertexInputStateCreateInfo '[])) $ \cont -> withSomeCStruct @PipelineVertexInputStateCreateInfo (j) (cont . castPtr)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo _)))) pVertexInputState''
+    pTessellationState'' <- case (tessellationState) of
+      Nothing -> pure nullPtr
+      Just j -> ContT @_ @_ @(Ptr (PipelineTessellationStateCreateInfo '[])) $ \cont -> withSomeCStruct @PipelineTessellationStateCreateInfo (j) (cont . castPtr)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (PipelineTessellationStateCreateInfo _)))) pTessellationState''
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct GraphicsShaderGroupCreateInfoNV where
+  peekCStruct p = do
+    stageCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
+    pStages' <- generateM (fromIntegral stageCount) (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
+    pVertexInputState <- peek @(Ptr (PipelineVertexInputStateCreateInfo _)) ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo _))))
+    pVertexInputState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pVertexInputState
+    pTessellationState <- peek @(Ptr (PipelineTessellationStateCreateInfo _)) ((p `plusPtr` 40 :: Ptr (Ptr (PipelineTessellationStateCreateInfo _))))
+    pTessellationState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pTessellationState
+    pure $ GraphicsShaderGroupCreateInfoNV
+             pStages' pVertexInputState' pTessellationState'
+
+instance Zero GraphicsShaderGroupCreateInfoNV where
+  zero = GraphicsShaderGroupCreateInfoNV
+           mempty
+           Nothing
+           Nothing
+
+
+-- | VkGraphicsPipelineShaderGroupsCreateInfoNV - Structure specifying
+-- parameters of a newly created multi shader group pipeline
+--
+-- = Description
+--
+-- When referencing shader groups by index, groups defined in the
+-- referenced pipelines are treated as if they were defined as additional
+-- entries in @pGroups@. They are appended in the order they appear in the
+-- @pPipelines@ array and in the @pGroups@ array when those pipelines were
+-- defined.
+--
+-- The application /must/ maintain the lifetime of all such referenced
+-- pipelines based on the pipelines that make use of them.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879#
+--     @groupCount@ /must/ be at least @1@ and as maximum
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxGraphicsShaderGroupCount@
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880#
+--     The sum of @groupCount@ including those groups added from referenced
+--     @pPipelines@ /must/ also be as maximum
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxGraphicsShaderGroupCount@
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881# The
+--     state of the first element of @pGroups@ /must/ match its equivalent
+--     within the parent’s
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882# Each
+--     element of @pGroups@ /must/ in combination with the rest of the
+--     pipeline state yield a valid state configuration
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884# All
+--     elements of @pGroups@ /must/ use the same shader stage combinations
+--     unless any mesh shader stage is used, then either combination of
+--     task and mesh or just mesh shader is valid
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885# Mesh
+--     and regular primitive shading stages cannot be mixed across
+--     @pGroups@
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886#
+--     Each element of @pPipelines@ /must/ have been created with identical
+--     state to the pipeline currently created except the state that can be
+--     overridden by 'GraphicsShaderGroupCreateInfoNV'
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV'
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter#
+--     If @groupCount@ is not @0@, @pGroups@ /must/ be a valid pointer to
+--     an array of @groupCount@ valid 'GraphicsShaderGroupCreateInfoNV'
+--     structures
+--
+-- -   #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter#
+--     If @pipelineCount@ is not @0@, @pPipelines@ /must/ be a valid
+--     pointer to an array of @pipelineCount@ valid
+--     'Vulkan.Core10.Handles.Pipeline' handles
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'GraphicsShaderGroupCreateInfoNV', 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data GraphicsPipelineShaderGroupsCreateInfoNV = GraphicsPipelineShaderGroupsCreateInfoNV
+  { -- | @pGroups@ is a pointer to an array of 'GraphicsShaderGroupCreateInfoNV'
+    -- structures specifying which state of the original
+    -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' each shader group
+    -- overrides.
+    groups :: Vector GraphicsShaderGroupCreateInfoNV
+  , -- | @pPipelines@ is a pointer to an array of graphics
+    -- 'Vulkan.Core10.Handles.Pipeline' structures which are referenced within
+    -- the created pipeline, including all their shader groups.
+    pipelines :: Vector Pipeline
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GraphicsPipelineShaderGroupsCreateInfoNV)
+#endif
+deriving instance Show GraphicsPipelineShaderGroupsCreateInfoNV
+
+instance ToCStruct GraphicsPipelineShaderGroupsCreateInfoNV where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GraphicsPipelineShaderGroupsCreateInfoNV{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (groups)) :: Word32))
+    pPGroups' <- ContT $ allocaBytes @GraphicsShaderGroupCreateInfoNV ((Data.Vector.length (groups)) * 48)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPGroups' `plusPtr` (48 * (i)) :: Ptr GraphicsShaderGroupCreateInfoNV) (e) . ($ ())) (groups)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr GraphicsShaderGroupCreateInfoNV))) (pPGroups')
+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (pipelines)) :: Word32))
+    pPPipelines' <- ContT $ allocaBytes @Pipeline ((Data.Vector.length (pipelines)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPPipelines' `plusPtr` (8 * (i)) :: Ptr Pipeline) (e)) (pipelines)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Pipeline))) (pPPipelines')
+    lift $ f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct GraphicsPipelineShaderGroupsCreateInfoNV where
+  peekCStruct p = do
+    groupCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pGroups <- peek @(Ptr GraphicsShaderGroupCreateInfoNV) ((p `plusPtr` 24 :: Ptr (Ptr GraphicsShaderGroupCreateInfoNV)))
+    pGroups' <- generateM (fromIntegral groupCount) (\i -> peekCStruct @GraphicsShaderGroupCreateInfoNV ((pGroups `advancePtrBytes` (48 * (i)) :: Ptr GraphicsShaderGroupCreateInfoNV)))
+    pipelineCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
+    pPipelines <- peek @(Ptr Pipeline) ((p `plusPtr` 40 :: Ptr (Ptr Pipeline)))
+    pPipelines' <- generateM (fromIntegral pipelineCount) (\i -> peek @Pipeline ((pPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))
+    pure $ GraphicsPipelineShaderGroupsCreateInfoNV
+             pGroups' pPipelines'
+
+instance Zero GraphicsPipelineShaderGroupsCreateInfoNV where
+  zero = GraphicsPipelineShaderGroupsCreateInfoNV
+           mempty
+           mempty
+
+
+-- | VkBindShaderGroupIndirectCommandNV - Structure specifying input data for
+-- a single shader group command token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBindShaderGroupIndirectCommandNV-None-02944# The current
+--     bound graphics pipeline, as well as the pipelines it may reference,
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   #VUID-VkBindShaderGroupIndirectCommandNV-index-02945# The @index@
+--     /must/ be within range of the accessible shader groups of the
+--     current bound graphics pipeline. See 'cmdBindPipelineShaderGroupNV'
+--     for further details
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+data BindShaderGroupIndirectCommandNV = BindShaderGroupIndirectCommandNV
+  { -- | @groupIndex@ specifies which shader group of the current bound graphics
+    -- pipeline is used.
+    groupIndex :: Word32 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BindShaderGroupIndirectCommandNV)
+#endif
+deriving instance Show BindShaderGroupIndirectCommandNV
+
+instance ToCStruct BindShaderGroupIndirectCommandNV where
+  withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BindShaderGroupIndirectCommandNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (groupIndex)
+    f
+  cStructSize = 4
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct BindShaderGroupIndirectCommandNV where
+  peekCStruct p = do
+    groupIndex <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    pure $ BindShaderGroupIndirectCommandNV
+             groupIndex
+
+instance Storable BindShaderGroupIndirectCommandNV where
+  sizeOf ~_ = 4
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BindShaderGroupIndirectCommandNV where
+  zero = BindShaderGroupIndirectCommandNV
+           zero
+
+
+-- | VkBindIndexBufferIndirectCommandNV - Structure specifying input data for
+-- a single index buffer command token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandNV-None-02946# The buffer’s
+--     usage flag from which the address was acquired /must/ have the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947# The
+--     @bufferAddress@ /must/ be aligned to the @indexType@ used
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandNV-None-02948# Each element of
+--     the buffer from which the address was acquired and that is
+--     non-sparse /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter#
+--     @indexType@ /must/ be a valid
+--     'Vulkan.Core10.Enums.IndexType.IndexType' value
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
+-- 'Vulkan.Core10.Enums.IndexType.IndexType'
+data BindIndexBufferIndirectCommandNV = BindIndexBufferIndirectCommandNV
+  { -- | @bufferAddress@ specifies a physical address of the
+    -- 'Vulkan.Core10.Handles.Buffer' used as index buffer.
+    bufferAddress :: DeviceAddress
+  , -- | @size@ is the byte size range which is available for this operation from
+    -- the provided address.
+    size :: Word32
+  , -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value
+    -- specifying how indices are treated. Instead of the Vulkan enum values, a
+    -- custom @uint32_t@ value /can/ be mapped to an
+    -- 'Vulkan.Core10.Enums.IndexType.IndexType' by specifying the
+    -- 'IndirectCommandsLayoutTokenNV'::@pIndexTypes@ and
+    -- 'IndirectCommandsLayoutTokenNV'::@pIndexTypeValues@ arrays.
+    indexType :: IndexType
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BindIndexBufferIndirectCommandNV)
+#endif
+deriving instance Show BindIndexBufferIndirectCommandNV
+
+instance ToCStruct BindIndexBufferIndirectCommandNV where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BindIndexBufferIndirectCommandNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (bufferAddress)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (size)
+    poke ((p `plusPtr` 12 :: Ptr IndexType)) (indexType)
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr IndexType)) (zero)
+    f
+
+instance FromCStruct BindIndexBufferIndirectCommandNV where
+  peekCStruct p = do
+    bufferAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))
+    size <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    indexType <- peek @IndexType ((p `plusPtr` 12 :: Ptr IndexType))
+    pure $ BindIndexBufferIndirectCommandNV
+             bufferAddress size indexType
+
+instance Storable BindIndexBufferIndirectCommandNV where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BindIndexBufferIndirectCommandNV where
+  zero = BindIndexBufferIndirectCommandNV
+           zero
+           zero
+           zero
+
+
+-- | VkBindVertexBufferIndirectCommandNV - Structure specifying input data
+-- for a single vertex buffer command token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBindVertexBufferIndirectCommandNV-None-02949# The buffer’s
+--     usage flag from which the address was acquired /must/ have the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkBindVertexBufferIndirectCommandNV-None-02950# Each element
+--     of the buffer from which the address was acquired and that is
+--     non-sparse /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
+data BindVertexBufferIndirectCommandNV = BindVertexBufferIndirectCommandNV
+  { -- | @bufferAddress@ specifies a physical address of the
+    -- 'Vulkan.Core10.Handles.Buffer' used as vertex input binding.
+    bufferAddress :: DeviceAddress
+  , -- | @size@ is the byte size range which is available for this operation from
+    -- the provided address.
+    size :: Word32
+  , -- | @stride@ is the byte size stride for this vertex input binding as in
+    -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@. It is
+    -- only used if 'IndirectCommandsLayoutTokenNV'::@vertexDynamicStride@ was
+    -- set, otherwise the stride is inherited from the current bound graphics
+    -- pipeline.
+    stride :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BindVertexBufferIndirectCommandNV)
+#endif
+deriving instance Show BindVertexBufferIndirectCommandNV
+
+instance ToCStruct BindVertexBufferIndirectCommandNV where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BindVertexBufferIndirectCommandNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (bufferAddress)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (size)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (stride)
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct BindVertexBufferIndirectCommandNV where
+  peekCStruct p = do
+    bufferAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))
+    size <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
+    stride <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
+    pure $ BindVertexBufferIndirectCommandNV
+             bufferAddress size stride
+
+instance Storable BindVertexBufferIndirectCommandNV where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BindVertexBufferIndirectCommandNV where
+  zero = BindVertexBufferIndirectCommandNV
+           zero
+           zero
+           zero
+
+
+-- | VkSetStateFlagsIndirectCommandNV - Structure specifying input data for a
+-- single state flag command token
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+data SetStateFlagsIndirectCommandNV = SetStateFlagsIndirectCommandNV
+  { -- | @data@ encodes packed state that this command alters.
+    --
+    -- -   Bit @0@: If set represents
+    --     'Vulkan.Core10.Enums.FrontFace.FRONT_FACE_CLOCKWISE', otherwise
+    --     'Vulkan.Core10.Enums.FrontFace.FRONT_FACE_COUNTER_CLOCKWISE'
+    data' :: Word32 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SetStateFlagsIndirectCommandNV)
+#endif
+deriving instance Show SetStateFlagsIndirectCommandNV
+
+instance ToCStruct SetStateFlagsIndirectCommandNV where
+  withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SetStateFlagsIndirectCommandNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (data')
+    f
+  cStructSize = 4
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct SetStateFlagsIndirectCommandNV where
+  peekCStruct p = do
+    data' <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    pure $ SetStateFlagsIndirectCommandNV
+             data'
+
+instance Storable SetStateFlagsIndirectCommandNV where
+  sizeOf ~_ = 4
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SetStateFlagsIndirectCommandNV where
+  zero = SetStateFlagsIndirectCommandNV
+           zero
+
+
+-- | VkIndirectCommandsStreamNV - Structure specifying input streams for
+-- generated command tokens
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsStreamNV-buffer-02942# The @buffer@’s usage
+--     flag /must/ have the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkIndirectCommandsStreamNV-offset-02943# The @offset@ /must/
+--     be aligned to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@
+--
+-- -   #VUID-VkIndirectCommandsStreamNV-buffer-02975# If @buffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsStreamNV-buffer-parameter# @buffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Buffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'GeneratedCommandsInfoNV'
+data IndirectCommandsStreamNV = IndirectCommandsStreamNV
+  { -- | @buffer@ specifies the 'Vulkan.Core10.Handles.Buffer' storing the
+    -- functional arguments for each sequence. These arguments /can/ be written
+    -- by the device.
+    buffer :: Buffer
+  , -- | @offset@ specified an offset into @buffer@ where the arguments start.
+    offset :: DeviceSize
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsStreamNV)
+#endif
+deriving instance Show IndirectCommandsStreamNV
+
+instance ToCStruct IndirectCommandsStreamNV where
+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsStreamNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Buffer)) (buffer)
+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (offset)
+    f
+  cStructSize = 16
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Buffer)) (zero)
+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsStreamNV where
+  peekCStruct p = do
+    buffer <- peek @Buffer ((p `plusPtr` 0 :: Ptr Buffer))
+    offset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))
+    pure $ IndirectCommandsStreamNV
+             buffer offset
+
+instance Storable IndirectCommandsStreamNV where
+  sizeOf ~_ = 16
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero IndirectCommandsStreamNV where
+  zero = IndirectCommandsStreamNV
+           zero
+           zero
+
+
+-- | VkIndirectCommandsLayoutTokenNV - Struct specifying the details of an
+-- indirect command layout token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-stream-02951# @stream@ /must/
+--     be smaller than 'IndirectCommandsLayoutCreateInfoNV'::@streamCount@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-offset-02952# @offset@ /must/
+--     be less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsTokenOffset@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-offset-06888# @offset@ /must/
+--     be aligned to the scalar alignment of @tokenType@ or
+--     @minIndirectCommandsBufferOffsetAlignment@, whichever is lower
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV',
+--     @vertexBindingUnit@ /must/ stay within device supported limits for
+--     the appropriate commands
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
+--     @pushconstantPipelineLayout@ /must/ be valid
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
+--     @pushconstantOffset@ /must/ be a multiple of @4@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
+--     @pushconstantSize@ /must/ be a multiple of @4@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
+--     @pushconstantOffset@ /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV',
+--     @pushconstantSize@ /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@
+--     minus @pushconstantOffset@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV', for
+--     each byte in the range specified by @pushconstantOffset@ and
+--     @pushconstantSize@ and for each shader stage in
+--     @pushconstantShaderStageFlags@, there /must/ be a push constant
+--     range in @pushconstantPipelineLayout@ that includes that byte and
+--     that stage
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV', for
+--     each byte in the range specified by @pushconstantOffset@ and
+--     @pushconstantSize@ and for each push constant range that overlaps
+--     that byte, @pushconstantShaderStageFlags@ /must/ include all stages
+--     in that push constant range’s
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984# If
+--     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV',
+--     @indirectStateFlags@ /must/ not be @0@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV'
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter#
+--     @tokenType@ /must/ be a valid 'IndirectCommandsTokenTypeNV' value
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter#
+--     If @pushconstantPipelineLayout@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pushconstantPipelineLayout@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PipelineLayout' handle
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter#
+--     @pushconstantShaderStageFlags@ /must/ be a valid combination of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter#
+--     @indirectStateFlags@ /must/ be a valid combination of
+--     'IndirectStateFlagBitsNV' values
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter# If
+--     @indexTypeCount@ is not @0@, @pIndexTypes@ /must/ be a valid pointer
+--     to an array of @indexTypeCount@ valid
+--     'Vulkan.Core10.Enums.IndexType.IndexType' values
+--
+-- -   #VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter# If
+--     @indexTypeCount@ is not @0@, @pIndexTypeValues@ /must/ be a valid
+--     pointer to an array of @indexTypeCount@ @uint32_t@ values
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.IndexType.IndexType',
+-- 'IndirectCommandsLayoutCreateInfoNV', 'IndirectCommandsTokenTypeNV',
+-- 'IndirectStateFlagsNV', 'Vulkan.Core10.Handles.PipelineLayout',
+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data IndirectCommandsLayoutTokenNV = IndirectCommandsLayoutTokenNV
+  { -- | @tokenType@ specifies the token command type.
+    tokenType :: IndirectCommandsTokenTypeNV
+  , -- | @stream@ is the index of the input stream containing the token argument
+    -- data.
+    stream :: Word32
+  , -- | @offset@ is a relative starting offset within the input stream memory
+    -- for the token argument data.
+    offset :: Word32
+  , -- | @vertexBindingUnit@ is used for the vertex buffer binding command.
+    vertexBindingUnit :: Word32
+  , -- | @vertexDynamicStride@ sets if the vertex buffer stride is provided by
+    -- the binding command rather than the current bound graphics pipeline
+    -- state.
+    vertexDynamicStride :: Bool
+  , -- | @pushconstantPipelineLayout@ is the
+    -- 'Vulkan.Core10.Handles.PipelineLayout' used for the push constant
+    -- command.
+    pushconstantPipelineLayout :: PipelineLayout
+  , -- | @pushconstantShaderStageFlags@ are the shader stage flags used for the
+    -- push constant command.
+    pushconstantShaderStageFlags :: ShaderStageFlags
+  , -- | @pushconstantOffset@ is the offset used for the push constant command.
+    pushconstantOffset :: Word32
+  , -- | @pushconstantSize@ is the size used for the push constant command.
+    pushconstantSize :: Word32
+  , -- | @indirectStateFlags@ are the active states for the state flag command.
+    indirectStateFlags :: IndirectStateFlagsNV
+  , -- | @pIndexTypes@ is the used 'Vulkan.Core10.Enums.IndexType.IndexType' for
+    -- the corresponding @uint32_t@ value entry in @pIndexTypeValues@.
+    indexTypes :: Vector IndexType
+  , -- No documentation found for Nested "VkIndirectCommandsLayoutTokenNV" "pIndexTypeValues"
+    indexTypeValues :: Vector Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsLayoutTokenNV)
+#endif
+deriving instance Show IndirectCommandsLayoutTokenNV
+
+instance ToCStruct IndirectCommandsLayoutTokenNV where
+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsLayoutTokenNV{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeNV)) (tokenType)
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (stream)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (offset)
+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (vertexBindingUnit)
+    lift $ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (vertexDynamicStride))
+    lift $ poke ((p `plusPtr` 40 :: Ptr PipelineLayout)) (pushconstantPipelineLayout)
+    lift $ poke ((p `plusPtr` 48 :: Ptr ShaderStageFlags)) (pushconstantShaderStageFlags)
+    lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (pushconstantOffset)
+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (pushconstantSize)
+    lift $ poke ((p `plusPtr` 60 :: Ptr IndirectStateFlagsNV)) (indirectStateFlags)
+    let pIndexTypesLength = Data.Vector.length $ (indexTypes)
+    lift $ unless ((Data.Vector.length $ (indexTypeValues)) == pIndexTypesLength) $
+      throwIO $ IOError Nothing InvalidArgument "" "pIndexTypeValues and pIndexTypes must have the same length" Nothing Nothing
+    lift $ poke ((p `plusPtr` 64 :: Ptr Word32)) ((fromIntegral pIndexTypesLength :: Word32))
+    pPIndexTypes' <- ContT $ allocaBytes @IndexType ((Data.Vector.length (indexTypes)) * 4)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPIndexTypes' `plusPtr` (4 * (i)) :: Ptr IndexType) (e)) (indexTypes)
+    lift $ poke ((p `plusPtr` 72 :: Ptr (Ptr IndexType))) (pPIndexTypes')
+    pPIndexTypeValues' <- ContT $ allocaBytes @Word32 ((Data.Vector.length (indexTypeValues)) * 4)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPIndexTypeValues' `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (indexTypeValues)
+    lift $ poke ((p `plusPtr` 80 :: Ptr (Ptr Word32))) (pPIndexTypeValues')
+    lift $ f
+  cStructSize = 88
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeNV)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsLayoutTokenNV where
+  peekCStruct p = do
+    tokenType <- peek @IndirectCommandsTokenTypeNV ((p `plusPtr` 16 :: Ptr IndirectCommandsTokenTypeNV))
+    stream <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    offset <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    vertexBindingUnit <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
+    vertexDynamicStride <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    pushconstantPipelineLayout <- peek @PipelineLayout ((p `plusPtr` 40 :: Ptr PipelineLayout))
+    pushconstantShaderStageFlags <- peek @ShaderStageFlags ((p `plusPtr` 48 :: Ptr ShaderStageFlags))
+    pushconstantOffset <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
+    pushconstantSize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
+    indirectStateFlags <- peek @IndirectStateFlagsNV ((p `plusPtr` 60 :: Ptr IndirectStateFlagsNV))
+    indexTypeCount <- peek @Word32 ((p `plusPtr` 64 :: Ptr Word32))
+    pIndexTypes <- peek @(Ptr IndexType) ((p `plusPtr` 72 :: Ptr (Ptr IndexType)))
+    pIndexTypes' <- generateM (fromIntegral indexTypeCount) (\i -> peek @IndexType ((pIndexTypes `advancePtrBytes` (4 * (i)) :: Ptr IndexType)))
+    pIndexTypeValues <- peek @(Ptr Word32) ((p `plusPtr` 80 :: Ptr (Ptr Word32)))
+    pIndexTypeValues' <- generateM (fromIntegral indexTypeCount) (\i -> peek @Word32 ((pIndexTypeValues `advancePtrBytes` (4 * (i)) :: Ptr Word32)))
+    pure $ IndirectCommandsLayoutTokenNV
+             tokenType
+             stream
+             offset
+             vertexBindingUnit
+             (bool32ToBool vertexDynamicStride)
+             pushconstantPipelineLayout
+             pushconstantShaderStageFlags
+             pushconstantOffset
+             pushconstantSize
+             indirectStateFlags
+             pIndexTypes'
+             pIndexTypeValues'
+
+instance Zero IndirectCommandsLayoutTokenNV where
+  zero = IndirectCommandsLayoutTokenNV
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           mempty
+           mempty
+
+
+-- | VkIndirectCommandsLayoutCreateInfoNV - Structure specifying the
+-- parameters of a newly created indirect commands layout object
+--
+-- = Description
+--
+-- The following code illustrates some of the flags:
+--
+-- > void cmdProcessAllSequences(cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sequencesCount, indexbuffer, indexbufferOffset)
+-- > {
+-- >   for (s = 0; s < sequencesCount; s++)
+-- >   {
+-- >     sUsed = s;
+-- >
+-- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV) {
+-- >       sUsed = indexbuffer.load_uint32( sUsed * sizeof(uint32_t) + indexbufferOffset);
+-- >     }
+-- >
+-- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV) {
+-- >       sUsed = incoherent_implementation_dependent_permutation[ sUsed ];
+-- >     }
+-- >
+-- >     cmdProcessSequence( cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sUsed );
+-- >   }
+-- > }
+--
+-- When tokens are consumed, an offset is computed based on token offset
+-- and stream stride. The resulting offset is required to be aligned. The
+-- alignment for a specific token is equal to the scalar alignment of the
+-- data type as defined in
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements Alignment Requirements>,
+-- or
+-- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@,
+-- whichever is lower.
+--
+-- Note
+--
+-- A @minIndirectCommandsBufferOffsetAlignment@ of 4 allows
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' to be packed as @uvec2@
+-- with scalar layout instead of @uint64_t@ with 8 byte alignment. This
+-- enables direct compatibility with D3D12 command signature layouts.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930#
+--     The @pipelineBindPoint@ /must/ be
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     or
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931#
+--     @tokenCount@ /must/ be greater than @0@ and less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsTokenCount@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932# If
+--     @pTokens@ contains an entry of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV' it /must/ be the
+--     first element of the array and there /must/ be only a single element
+--     of such token type
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933# If
+--     @pTokens@ contains an entry of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV' there /must/ be only a
+--     single element of such token type
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934# All state
+--     tokens in @pTokens@ /must/ occur before any work provoking tokens
+--     ('INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV' ,
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV' )
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935# The
+--     content of @pTokens@ /must/ include one single work provoking token
+--     that is compatible with the @pipelineBindPoint@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936#
+--     @streamCount@ /must/ be greater than @0@ and less or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsStreamCount@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937#
+--     each element of @pStreamStrides@ /must/ be greater than \`0\`and
+--     less than or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsStreamStride@.
+--     Furthermore the alignment of each token input /must/ be ensured
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088#
+--     If @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCompute ::deviceGeneratedCompute>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089#
+--     If @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--     then the state tokens in @pTokens@ /must/ only include
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV',
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV', or
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090#
+--     If @pipelineBindPoint@ is
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--     and @pTokens@ includes 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV',
+--     then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV'
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext# @pNext@
+--     /must/ be @NULL@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter# @flags@
+--     /must/ be a valid combination of
+--     'IndirectCommandsLayoutUsageFlagBitsNV' values
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter#
+--     @pTokens@ /must/ be a valid pointer to an array of @tokenCount@
+--     valid 'IndirectCommandsLayoutTokenNV' structures
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter#
+--     @pStreamStrides@ /must/ be a valid pointer to an array of
+--     @streamCount@ @uint32_t@ values
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength#
+--     @tokenCount@ /must/ be greater than @0@
+--
+-- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength#
+--     @streamCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'IndirectCommandsLayoutTokenNV', 'IndirectCommandsLayoutUsageFlagsNV',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'createIndirectCommandsLayoutNV'
+data IndirectCommandsLayoutCreateInfoNV = IndirectCommandsLayoutCreateInfoNV
+  { -- | @flags@ is a bitmask of 'IndirectCommandsLayoutUsageFlagBitsNV'
+    -- specifying usage hints of this layout.
+    flags :: IndirectCommandsLayoutUsageFlagsNV
+  , -- | @pipelineBindPoint@ is the
+    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' that this
+    -- layout targets.
+    pipelineBindPoint :: PipelineBindPoint
+  , -- | @pTokens@ is an array describing each command token in detail. See
+    -- 'IndirectCommandsTokenTypeNV' and 'IndirectCommandsLayoutTokenNV' below
+    -- for details.
+    tokens :: Vector IndirectCommandsLayoutTokenNV
+  , -- | @pStreamStrides@ is an array defining the byte stride for each input
+    -- stream.
+    streamStrides :: Vector Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (IndirectCommandsLayoutCreateInfoNV)
+#endif
+deriving instance Show IndirectCommandsLayoutCreateInfoNV
+
+instance ToCStruct IndirectCommandsLayoutCreateInfoNV where
+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p IndirectCommandsLayoutCreateInfoNV{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsNV)) (flags)
+    lift $ poke ((p `plusPtr` 20 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (tokens)) :: Word32))
+    pPTokens' <- ContT $ allocaBytes @IndirectCommandsLayoutTokenNV ((Data.Vector.length (tokens)) * 88)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPTokens' `plusPtr` (88 * (i)) :: Ptr IndirectCommandsLayoutTokenNV) (e) . ($ ())) (tokens)
+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr IndirectCommandsLayoutTokenNV))) (pPTokens')
+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (streamStrides)) :: Word32))
+    pPStreamStrides' <- ContT $ allocaBytes @Word32 ((Data.Vector.length (streamStrides)) * 4)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPStreamStrides' `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (streamStrides)
+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr Word32))) (pPStreamStrides')
+    lift $ f
+  cStructSize = 56
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 20 :: Ptr PipelineBindPoint)) (zero)
+    f
+
+instance FromCStruct IndirectCommandsLayoutCreateInfoNV where
+  peekCStruct p = do
+    flags <- peek @IndirectCommandsLayoutUsageFlagsNV ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsNV))
+    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 20 :: Ptr PipelineBindPoint))
+    tokenCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pTokens <- peek @(Ptr IndirectCommandsLayoutTokenNV) ((p `plusPtr` 32 :: Ptr (Ptr IndirectCommandsLayoutTokenNV)))
+    pTokens' <- generateM (fromIntegral tokenCount) (\i -> peekCStruct @IndirectCommandsLayoutTokenNV ((pTokens `advancePtrBytes` (88 * (i)) :: Ptr IndirectCommandsLayoutTokenNV)))
+    streamCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    pStreamStrides <- peek @(Ptr Word32) ((p `plusPtr` 48 :: Ptr (Ptr Word32)))
+    pStreamStrides' <- generateM (fromIntegral streamCount) (\i -> peek @Word32 ((pStreamStrides `advancePtrBytes` (4 * (i)) :: Ptr Word32)))
+    pure $ IndirectCommandsLayoutCreateInfoNV
+             flags pipelineBindPoint pTokens' pStreamStrides'
+
+instance Zero IndirectCommandsLayoutCreateInfoNV where
+  zero = IndirectCommandsLayoutCreateInfoNV
+           zero
+           zero
+           mempty
+           mempty
+
+
+-- | VkGeneratedCommandsInfoNV - Structure specifying parameters for the
+-- generation of commands
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipeline-02912# The provided
+--     @pipeline@ /must/ match the pipeline bound at execution time
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913# If the
+--     @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV', then the @pipeline@
+--     /must/ have been created with multiple shader groups
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914# If the
+--     @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV', then the @pipeline@
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--     set in 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@flags@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915# If the
+--     @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV', then the
+--     @pipeline@\`s 'Vulkan.Core10.Handles.PipelineLayout' /must/ match
+--     the 'IndirectCommandsLayoutTokenNV'::@pushconstantPipelineLayout@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-streamCount-02916# @streamCount@
+--     /must/ match the @indirectCommandsLayout@’s @streamCount@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084# If
+--     @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     then the @pipeline@ /must/ have been created with the flag
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09085# If
+--     @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     then the @pipeline@ /must/ have been created with a
+--     'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV'
+--     structure specifying a valid address where its metadata will be
+--     saved
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09086# If
+--     @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     then
+--     'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV'
+--     /must/ have been called on that pipeline to save its metadata to a
+--     device address
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09087# If
+--     @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     and if 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' is used, then
+--     @pipeline@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917#
+--     @sequencesCount@ /must/ be less or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectSequenceCount@
+--     and 'GeneratedCommandsMemoryRequirementsInfoNV'::@maxSequencesCount@
+--     that was used to determine the @preprocessSize@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918#
+--     @preprocessBuffer@ /must/ have the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set in its usage flag
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919#
+--     @preprocessOffset@ /must/ be aligned to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971# If
+--     @preprocessBuffer@ is non-sparse then it /must/ be bound completely
+--     and contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory'
+--     object
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920#
+--     @preprocessSize@ /must/ be at least equal to the memory
+--     requirement\`s size returned by
+--     'getGeneratedCommandsMemoryRequirementsNV' using the matching inputs
+--     (@indirectCommandsLayout@, …​) as within this structure
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921#
+--     @sequencesCountBuffer@ /can/ be set if the actual used count of
+--     sequences is sourced from the provided buffer. In that case the
+--     @sequencesCount@ serves as upper bound
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922# If
+--     @sequencesCountBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', its usage flag /must/ have
+--     the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923# If
+--     @sequencesCountBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesCountOffset@
+--     /must/ be aligned to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minSequencesCountBufferOffsetAlignment@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972# If
+--     @sequencesCountBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' and is non-sparse then it
+--     /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924# If
+--     @indirectCommandsLayout@’s
+--     'INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV' is set,
+--     @sequencesIndexBuffer@ /must/ be set otherwise it /must/ be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925# If
+--     @sequencesIndexBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', its usage flag /must/ have
+--     the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926# If
+--     @sequencesIndexBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesIndexOffset@
+--     /must/ be aligned to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minSequencesIndexBufferOffsetAlignment@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973# If
+--     @sequencesIndexBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' and is non-sparse then it
+--     /must/ be bound completely and contiguously to a single
+--     'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078# If the
+--     @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV', then the @pipeline@
+--     /must/ contain a shader stage using the @MeshNV@ @Execution@ @Model@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079# If the
+--     @indirectCommandsLayout@ uses a token of
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV', then the
+--     @pipeline@ /must/ contain a shader stage using the @MeshEXT@
+--     @Execution@ @Model@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV'
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pNext-pNext# @pNext@ /must/ be
+--     @NULL@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pipeline-parameter# @pipeline@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter#
+--     @indirectCommandsLayout@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-pStreams-parameter# @pStreams@
+--     /must/ be a valid pointer to an array of @streamCount@ valid
+--     'IndirectCommandsStreamNV' structures
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter#
+--     @preprocessBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'
+--     handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter# If
+--     @sequencesCountBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesCountBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter# If
+--     @sequencesIndexBuffer@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @sequencesIndexBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength#
+--     @streamCount@ /must/ be greater than @0@
+--
+-- -   #VUID-VkGeneratedCommandsInfoNV-commonparent# Each of
+--     @indirectCommandsLayout@, @pipeline@, @preprocessBuffer@,
+--     @sequencesCountBuffer@, and @sequencesIndexBuffer@ that are valid
+--     handles of non-ignored parameters /must/ have been created,
+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Core10.Handles.Buffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV',
+-- 'IndirectCommandsStreamNV', 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'cmdExecuteGeneratedCommandsNV', 'cmdPreprocessGeneratedCommandsNV'
+data GeneratedCommandsInfoNV = GeneratedCommandsInfoNV
+  { -- | @pipelineBindPoint@ is the
+    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' used for the
+    -- @pipeline@.
+    pipelineBindPoint :: PipelineBindPoint
+  , -- | @pipeline@ is the 'Vulkan.Core10.Handles.Pipeline' used in the
+    -- generation and execution process.
+    pipeline :: Pipeline
+  , -- | @indirectCommandsLayout@ is the
+    -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' that provides the
+    -- command sequence to generate.
+    indirectCommandsLayout :: IndirectCommandsLayoutNV
+  , -- | @pStreams@ is a pointer to an array of @streamCount@
+    -- 'IndirectCommandsStreamNV' structures providing the input data for the
+    -- tokens used in @indirectCommandsLayout@.
+    streams :: Vector IndirectCommandsStreamNV
+  , -- | @sequencesCount@ is the maximum number of sequences to reserve. If
+    -- @sequencesCountBuffer@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', this
+    -- is also the actual number of sequences generated.
+    sequencesCount :: Word32
+  , -- | @preprocessBuffer@ is the 'Vulkan.Core10.Handles.Buffer' that is used
+    -- for preprocessing the input data for execution. If this structure is
+    -- used with 'cmdExecuteGeneratedCommandsNV' with its @isPreprocessed@ set
+    -- to 'Vulkan.Core10.FundamentalTypes.TRUE', then the preprocessing step is
+    -- skipped and data is only read from this buffer. The contents and the
+    -- layout of this buffer is opaque to applications and /must/ not be
+    -- modified or copied to another buffer for reuse.
+    preprocessBuffer :: Buffer
+  , -- | @preprocessOffset@ is the byte offset into @preprocessBuffer@ where the
+    -- preprocessed data is stored.
+    preprocessOffset :: DeviceSize
+  , -- | @preprocessSize@ is the maximum byte size within the @preprocessBuffer@
+    -- after the @preprocessOffset@ that is available for preprocessing.
+    preprocessSize :: DeviceSize
+  , -- | @sequencesCountBuffer@ is a 'Vulkan.Core10.Handles.Buffer' in which the
+    -- actual number of sequences is provided as single @uint32_t@ value.
+    sequencesCountBuffer :: Buffer
+  , -- | @sequencesCountOffset@ is the byte offset into @sequencesCountBuffer@
+    -- where the count value is stored.
+    sequencesCountOffset :: DeviceSize
+  , -- | @sequencesIndexBuffer@ is a 'Vulkan.Core10.Handles.Buffer' that encodes
+    -- the used sequence indices as @uint32_t@ array.
+    sequencesIndexBuffer :: Buffer
+  , -- | @sequencesIndexOffset@ is the byte offset into @sequencesIndexBuffer@
+    -- where the index values start.
+    sequencesIndexOffset :: DeviceSize
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GeneratedCommandsInfoNV)
+#endif
+deriving instance Show GeneratedCommandsInfoNV
+
+instance ToCStruct GeneratedCommandsInfoNV where
+  withCStruct x f = allocaBytes 120 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GeneratedCommandsInfoNV{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
+    lift $ poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (indirectCommandsLayout)
+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (streams)) :: Word32))
+    pPStreams' <- ContT $ allocaBytes @IndirectCommandsStreamNV ((Data.Vector.length (streams)) * 16)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPStreams' `plusPtr` (16 * (i)) :: Ptr IndirectCommandsStreamNV) (e)) (streams)
+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr IndirectCommandsStreamNV))) (pPStreams')
+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (sequencesCount)
+    lift $ poke ((p `plusPtr` 64 :: Ptr Buffer)) (preprocessBuffer)
+    lift $ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (preprocessOffset)
+    lift $ poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (preprocessSize)
+    lift $ poke ((p `plusPtr` 88 :: Ptr Buffer)) (sequencesCountBuffer)
+    lift $ poke ((p `plusPtr` 96 :: Ptr DeviceSize)) (sequencesCountOffset)
+    lift $ poke ((p `plusPtr` 104 :: Ptr Buffer)) (sequencesIndexBuffer)
+    lift $ poke ((p `plusPtr` 112 :: Ptr DeviceSize)) (sequencesIndexOffset)
+    lift $ f
+  cStructSize = 120
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 64 :: Ptr Buffer)) (zero)
+    poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 96 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 112 :: Ptr DeviceSize)) (zero)
+    f
+
+instance FromCStruct GeneratedCommandsInfoNV where
+  peekCStruct p = do
+    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 16 :: Ptr PipelineBindPoint))
+    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
+    indirectCommandsLayout <- peek @IndirectCommandsLayoutNV ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV))
+    streamCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    pStreams <- peek @(Ptr IndirectCommandsStreamNV) ((p `plusPtr` 48 :: Ptr (Ptr IndirectCommandsStreamNV)))
+    pStreams' <- generateM (fromIntegral streamCount) (\i -> peekCStruct @IndirectCommandsStreamNV ((pStreams `advancePtrBytes` (16 * (i)) :: Ptr IndirectCommandsStreamNV)))
+    sequencesCount <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
+    preprocessBuffer <- peek @Buffer ((p `plusPtr` 64 :: Ptr Buffer))
+    preprocessOffset <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))
+    preprocessSize <- peek @DeviceSize ((p `plusPtr` 80 :: Ptr DeviceSize))
+    sequencesCountBuffer <- peek @Buffer ((p `plusPtr` 88 :: Ptr Buffer))
+    sequencesCountOffset <- peek @DeviceSize ((p `plusPtr` 96 :: Ptr DeviceSize))
+    sequencesIndexBuffer <- peek @Buffer ((p `plusPtr` 104 :: Ptr Buffer))
+    sequencesIndexOffset <- peek @DeviceSize ((p `plusPtr` 112 :: Ptr DeviceSize))
+    pure $ GeneratedCommandsInfoNV
+             pipelineBindPoint
+             pipeline
+             indirectCommandsLayout
+             pStreams'
+             sequencesCount
+             preprocessBuffer
+             preprocessOffset
+             preprocessSize
+             sequencesCountBuffer
+             sequencesCountOffset
+             sequencesIndexBuffer
+             sequencesIndexOffset
+
+instance Zero GeneratedCommandsInfoNV where
+  zero = GeneratedCommandsInfoNV
+           zero
+           zero
+           zero
+           mempty
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkGeneratedCommandsMemoryRequirementsInfoNV - Structure specifying
+-- parameters for the reservation of preprocess buffer space
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907#
+--     @maxSequencesCount@ /must/ be less or equal to
+--     'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectSequenceCount@
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075#
+--     If @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',
+--     then @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline'
+--     handle
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076#
+--     If @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     and the @indirectCommandsLayout@ was not created with a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' token, then the
+--     @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077#
+--     If @pipelineBindPoint@ is of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',
+--     and the @indirectCommandsLayout@ contains a
+--     'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' token, then the
+--     @pipeline@ /must/ be @NULL@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV'
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext#
+--     @pNext@ /must/ be @NULL@
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter#
+--     If @pipeline@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
+--     @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter#
+--     @indirectCommandsLayout@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle
+--
+-- -   #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent# Both
+--     of @indirectCommandsLayout@, and @pipeline@ that are valid handles
+--     of non-ignored parameters /must/ have been created, allocated, or
+--     retrieved from the same 'Vulkan.Core10.Handles.Device'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV',
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getGeneratedCommandsMemoryRequirementsNV'
+data GeneratedCommandsMemoryRequirementsInfoNV = GeneratedCommandsMemoryRequirementsInfoNV
+  { -- | @pipelineBindPoint@ is the
+    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' of the
+    -- @pipeline@ that this buffer memory is intended to be used with during
+    -- the execution.
+    pipelineBindPoint :: PipelineBindPoint
+  , -- | @pipeline@ is the 'Vulkan.Core10.Handles.Pipeline' that this buffer
+    -- memory is intended to be used with during the execution.
+    pipeline :: Pipeline
+  , -- | @indirectCommandsLayout@ is the
+    -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' that this buffer
+    -- memory is intended to be used with.
+    indirectCommandsLayout :: IndirectCommandsLayoutNV
+  , -- | @maxSequencesCount@ is the maximum number of sequences that this buffer
+    -- memory in combination with the other state provided /can/ be used with.
+    maxSequencesCount :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GeneratedCommandsMemoryRequirementsInfoNV)
+#endif
+deriving instance Show GeneratedCommandsMemoryRequirementsInfoNV
+
+instance ToCStruct GeneratedCommandsMemoryRequirementsInfoNV where
+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GeneratedCommandsMemoryRequirementsInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
+    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
+    poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (indirectCommandsLayout)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxSequencesCount)
+    f
+  cStructSize = 48
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct GeneratedCommandsMemoryRequirementsInfoNV where
+  peekCStruct p = do
+    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 16 :: Ptr PipelineBindPoint))
+    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
+    indirectCommandsLayout <- peek @IndirectCommandsLayoutNV ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV))
+    maxSequencesCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
+    pure $ GeneratedCommandsMemoryRequirementsInfoNV
+             pipelineBindPoint pipeline indirectCommandsLayout maxSequencesCount
+
+instance Storable GeneratedCommandsMemoryRequirementsInfoNV where
+  sizeOf ~_ = 48
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero GeneratedCommandsMemoryRequirementsInfoNV where
+  zero = GeneratedCommandsMemoryRequirementsInfoNV
+           zero
+           zero
+           zero
+           zero
+
+
+type IndirectCommandsLayoutUsageFlagsNV = IndirectCommandsLayoutUsageFlagBitsNV
+
+-- | VkIndirectCommandsLayoutUsageFlagBitsNV - Bitmask specifying allowed
+-- usage of an indirect commands layout
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'IndirectCommandsLayoutUsageFlagsNV'
+newtype IndirectCommandsLayoutUsageFlagBitsNV = IndirectCommandsLayoutUsageFlagBitsNV Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' specifies
+-- that the layout is always used with the manual preprocessing step
+-- through calling 'cmdPreprocessGeneratedCommandsNV' and executed by
+-- 'cmdExecuteGeneratedCommandsNV' with @isPreprocessed@ set to
+-- 'Vulkan.Core10.FundamentalTypes.TRUE'.
+pattern INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000001
+
+-- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV' specifies that
+-- the input data for the sequences is not implicitly indexed from
+-- 0..sequencesUsed but a user provided 'Vulkan.Core10.Handles.Buffer'
+-- encoding the index is provided.
+pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000002
+
+-- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV' specifies
+-- that the processing of sequences /can/ happen at an
+-- implementation-dependent order, which is not: guaranteed to be coherent
+-- using the same input data. This flag is ignored when the
+-- @pipelineBindPoint@ is
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' as
+-- it is implied that the dispatch sequence is always unordered.
+pattern INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000004
+
+conNameIndirectCommandsLayoutUsageFlagBitsNV :: String
+conNameIndirectCommandsLayoutUsageFlagBitsNV = "IndirectCommandsLayoutUsageFlagBitsNV"
+
+enumPrefixIndirectCommandsLayoutUsageFlagBitsNV :: String
+enumPrefixIndirectCommandsLayoutUsageFlagBitsNV = "INDIRECT_COMMANDS_LAYOUT_USAGE_"
+
+showTableIndirectCommandsLayoutUsageFlagBitsNV :: [(IndirectCommandsLayoutUsageFlagBitsNV, String)]
+showTableIndirectCommandsLayoutUsageFlagBitsNV =
+  [
+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV
+    , "EXPLICIT_PREPROCESS_BIT_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV
+    , "INDEXED_SEQUENCES_BIT_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
+    , "UNORDERED_SEQUENCES_BIT_NV"
+    )
+  ]
+
+instance Show IndirectCommandsLayoutUsageFlagBitsNV where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixIndirectCommandsLayoutUsageFlagBitsNV
+      showTableIndirectCommandsLayoutUsageFlagBitsNV
+      conNameIndirectCommandsLayoutUsageFlagBitsNV
+      (\(IndirectCommandsLayoutUsageFlagBitsNV x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read IndirectCommandsLayoutUsageFlagBitsNV where
+  readPrec =
+    enumReadPrec
+      enumPrefixIndirectCommandsLayoutUsageFlagBitsNV
+      showTableIndirectCommandsLayoutUsageFlagBitsNV
+      conNameIndirectCommandsLayoutUsageFlagBitsNV
+      IndirectCommandsLayoutUsageFlagBitsNV
+
+type IndirectStateFlagsNV = IndirectStateFlagBitsNV
+
+-- | VkIndirectStateFlagBitsNV - Bitmask specifying state that can be altered
+-- on the device
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'IndirectStateFlagsNV'
+newtype IndirectStateFlagBitsNV = IndirectStateFlagBitsNV Flags
+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
+
+-- | 'INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV' allows to toggle the
+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace' rasterization state for
+-- subsequent drawing commands.
+pattern INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = IndirectStateFlagBitsNV 0x00000001
+
+conNameIndirectStateFlagBitsNV :: String
+conNameIndirectStateFlagBitsNV = "IndirectStateFlagBitsNV"
+
+enumPrefixIndirectStateFlagBitsNV :: String
+enumPrefixIndirectStateFlagBitsNV = "INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"
+
+showTableIndirectStateFlagBitsNV :: [(IndirectStateFlagBitsNV, String)]
+showTableIndirectStateFlagBitsNV = [(INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV, "")]
+
+instance Show IndirectStateFlagBitsNV where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixIndirectStateFlagBitsNV
+      showTableIndirectStateFlagBitsNV
+      conNameIndirectStateFlagBitsNV
+      (\(IndirectStateFlagBitsNV x) -> x)
+      (\x -> showString "0x" . showHex x)
+
+instance Read IndirectStateFlagBitsNV where
+  readPrec =
+    enumReadPrec
+      enumPrefixIndirectStateFlagBitsNV
+      showTableIndirectStateFlagBitsNV
+      conNameIndirectStateFlagBitsNV
+      IndirectStateFlagBitsNV
+
+-- | VkIndirectCommandsTokenTypeNV - Enum specifying token commands
+--
+-- = Description
+--
+-- \'
+--
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | Token type                                        | Equivalent command                                                 |
+-- +===================================================+====================================================================+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV'    | 'cmdBindPipelineShaderGroupNV'                                     |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV'     | -                                                                  |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV'    | 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'           |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV'   | 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'         |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV'   | 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants'             |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV'    | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'       |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV'            | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect'              |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV'      | 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV'   |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV' | 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT' |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV'        | 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline'              |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV'        | 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect'          |
+-- +---------------------------------------------------+--------------------------------------------------------------------+
+--
+-- Supported indirect command tokens
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>,
+-- 'IndirectCommandsLayoutTokenNV'
+newtype IndirectCommandsTokenTypeNV = IndirectCommandsTokenTypeNV Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = IndirectCommandsTokenTypeNV 0
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = IndirectCommandsTokenTypeNV 1
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = IndirectCommandsTokenTypeNV 2
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = IndirectCommandsTokenTypeNV 3
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = IndirectCommandsTokenTypeNV 4
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = IndirectCommandsTokenTypeNV 5
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = IndirectCommandsTokenTypeNV 6
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = IndirectCommandsTokenTypeNV 7
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = IndirectCommandsTokenTypeNV 1000428004
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = IndirectCommandsTokenTypeNV 1000428003
+
+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"
+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = IndirectCommandsTokenTypeNV 1000328000
+
+{-# COMPLETE
+  INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV
+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV ::
+    IndirectCommandsTokenTypeNV
+  #-}
+
+conNameIndirectCommandsTokenTypeNV :: String
+conNameIndirectCommandsTokenTypeNV = "IndirectCommandsTokenTypeNV"
+
+enumPrefixIndirectCommandsTokenTypeNV :: String
+enumPrefixIndirectCommandsTokenTypeNV = "INDIRECT_COMMANDS_TOKEN_TYPE_"
+
+showTableIndirectCommandsTokenTypeNV :: [(IndirectCommandsTokenTypeNV, String)]
+showTableIndirectCommandsTokenTypeNV =
+  [
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV
+    , "SHADER_GROUP_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
+    , "STATE_FLAGS_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV
+    , "INDEX_BUFFER_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV
+    , "VERTEX_BUFFER_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
+    , "PUSH_CONSTANT_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV
+    , "DRAW_INDEXED_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV
+    , "DRAW_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
+    , "DRAW_TASKS_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV
+    , "DISPATCH_NV"
+    )
+  ,
+    ( INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV
+    , "PIPELINE_NV"
     )
   ,
     ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --     and
@@ -137,7 +140,7 @@
 -- -   a flag that encodes the primitive winding
 --
 -- While the GPU can be faster than a CPU to generate the commands, it will
--- not happen asynchronously to the device, therefore the primary use-case
+-- not happen asynchronously to the device, therefore the primary use case
 -- is generating “less” total work (occlusion culling, classification to
 -- use specialized shaders, etc.).
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs
@@ -0,0 +1,836 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_device_generated_commands_compute - device extension
+--
+-- == VK_NV_device_generated_commands_compute
+--
+-- [__Name String__]
+--     @VK_NV_device_generated_commands_compute@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     429
+--
+-- [__Revision__]
+--     2
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+--
+-- [__Contact__]
+--
+--     -   Vikram Kushwaha
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_device_generated_commands_compute] @vkushwaha-nv%0A*Here describe the issue or question you have about the VK_NV_device_generated_commands_compute extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-07-21
+--
+-- [__Contributors__]
+--
+--     -   Vikram Kushwaha, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+-- == Description
+--
+-- This extension allows the device to generate commands for binding
+-- compute pipelines, setting push constants and launching compute
+-- dispatches.
+--
+-- == New Commands
+--
+-- -   'cmdUpdatePipelineIndirectBufferNV'
+--
+-- -   'getPipelineIndirectDeviceAddressNV'
+--
+-- -   'getPipelineIndirectMemoryRequirementsNV'
+--
+-- == New Structures
+--
+-- -   'BindPipelineIndirectCommandNV'
+--
+-- -   'ComputePipelineIndirectBufferInfoNV'
+--
+-- -   'PipelineIndirectDeviceAddressInfoNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME'
+--
+-- -   'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV':
+--
+--     -   'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV'
+--
+--     -   'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV'
+--
+-- == Version History
+--
+-- -   Revision 2, 2023-07-21 (Vikram Kushwaha)
+--
+--     -   Rename vkCmdUpdatePipelineIndirectBuffer to
+--         vkCmdUpdatePipelineIndirectBufferNV
+--
+-- -   Revision 1, 2023-06-09 (Vikram Kushwaha)
+--
+--     -   First Revision
+--
+-- == See Also
+--
+-- 'BindPipelineIndirectCommandNV', 'ComputePipelineIndirectBufferInfoNV',
+-- 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
+-- 'PipelineIndirectDeviceAddressInfoNV',
+-- 'cmdUpdatePipelineIndirectBufferNV',
+-- 'getPipelineIndirectDeviceAddressNV',
+-- 'getPipelineIndirectMemoryRequirementsNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_device_generated_commands_compute  ( cmdUpdatePipelineIndirectBufferNV
+                                                                  , getPipelineIndirectMemoryRequirementsNV
+                                                                  , getPipelineIndirectDeviceAddressNV
+                                                                  , ComputePipelineIndirectBufferInfoNV(..)
+                                                                  , PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(..)
+                                                                  , PipelineIndirectDeviceAddressInfoNV(..)
+                                                                  , BindPipelineIndirectCommandNV(..)
+                                                                  , NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION
+                                                                  , pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION
+                                                                  , NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME
+                                                                  , pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME
+                                                                  , IndirectCommandsTokenTypeNV(..)
+                                                                  ) where
+
+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 Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+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.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Handles (CommandBuffer)
+import Vulkan.Core10.Handles (CommandBuffer(..))
+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
+import Vulkan.Core10.Handles (CommandBuffer_T)
+import Vulkan.Core10.Pipeline (ComputePipelineCreateInfo)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Core10.FundamentalTypes (DeviceAddress)
+import Vulkan.Dynamic (DeviceCmds(pVkCmdUpdatePipelineIndirectBufferNV))
+import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineIndirectDeviceAddressNV))
+import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineIndirectMemoryRequirementsNV))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.Core10.Handles (Pipeline)
+import Vulkan.Core10.Handles (Pipeline(..))
+import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
+import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV))
+import Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsTokenTypeNV(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdUpdatePipelineIndirectBufferNV
+  :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()
+
+-- | vkCmdUpdatePipelineIndirectBufferNV - Update the indirect compute
+-- pipeline’s metadata
+--
+-- = Description
+--
+-- 'cmdUpdatePipelineIndirectBufferNV' is only allowed outside of a render
+-- pass. This command is treated as a “transfer” operation for the purposes
+-- of synchronization barriers. The writes to the address /must/ be
+-- synchronized using stages
+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT' and
+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
+-- and with access masks
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_MEMORY_WRITE_BIT' and
+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'
+-- respectively before using the results in preprocessing.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018#
+--     @pipelineBindPoint@ /must/ be
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019# @pipeline@
+--     /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--     flag set
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020# @pipeline@
+--     /must/ have been created with 'ComputePipelineIndirectBufferInfoNV'
+--     structure specifying a valid address where its metadata will be
+--     saved
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter#
+--     @pipelineBindPoint@ /must/ be a valid
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter#
+--     @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-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-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support transfer, graphics, or compute
+--     operations
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass# This command
+--     /must/ only be called outside of a render pass instance
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding# This command
+--     /must/ only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent# Both of
+--     @commandBuffer@, and @pipeline@ /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                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |
+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |
+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'
+cmdUpdatePipelineIndirectBufferNV :: forall io
+                                   . (MonadIO io)
+                                  => -- | @commandBuffer@ is the command buffer into which the command will be
+                                     -- recorded.
+                                     CommandBuffer
+                                  -> -- | @pipelineBindPoint@ is a
+                                     -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+                                     -- specifying the type of pipeline whose metadata will be saved.
+                                     PipelineBindPoint
+                                  -> -- | @pipeline@ is the pipeline whose metadata will be saved.
+                                     Pipeline
+                                  -> io ()
+cmdUpdatePipelineIndirectBufferNV commandBuffer
+                                    pipelineBindPoint
+                                    pipeline = liftIO $ do
+  let vkCmdUpdatePipelineIndirectBufferNVPtr = pVkCmdUpdatePipelineIndirectBufferNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdUpdatePipelineIndirectBufferNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdatePipelineIndirectBufferNV is null" Nothing Nothing
+  let vkCmdUpdatePipelineIndirectBufferNV' = mkVkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNVPtr
+  traceAroundEvent "vkCmdUpdatePipelineIndirectBufferNV" (vkCmdUpdatePipelineIndirectBufferNV'
+                                                            (commandBufferHandle (commandBuffer))
+                                                            (pipelineBindPoint)
+                                                            (pipeline))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPipelineIndirectMemoryRequirementsNV
+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr (SomeStruct MemoryRequirements2) -> IO ()
+
+-- | vkGetPipelineIndirectMemoryRequirementsNV - Get the memory requirements
+-- for the compute indirect pipeline
+--
+-- = Description
+--
+-- If @pCreateInfo@::@pNext@ chain includes a pointer to a
+-- 'ComputePipelineIndirectBufferInfoNV' structure, then the contents of
+-- that structure are ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083#
+--     @pCreateInfo@::@flags@ /must/ include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter#
+--     @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameter#
+--     @pCreateInfo@ /must/ be a valid pointer to a valid
+--     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' structure
+--
+-- -   #VUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameter#
+--     @pMemoryRequirements@ /must/ be a valid pointer to a
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
+--     structure
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
+-- 'Vulkan.Core10.Handles.Device',
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'
+getPipelineIndirectMemoryRequirementsNV :: forall a b io
+                                         . ( Extendss ComputePipelineCreateInfo a
+                                           , PokeChain a
+                                           , Extendss MemoryRequirements2 b
+                                           , PokeChain b
+                                           , PeekChain b
+                                           , MonadIO io )
+                                        => -- | @device@ is the logical device that owns the buffer.
+                                           Device
+                                        -> -- | @pCreateInfo@ is a 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'
+                                           -- structure specifying the creation parameters of the compute pipeline
+                                           -- whose memory requirements are being queried.
+                                           (ComputePipelineCreateInfo a)
+                                        -> io (MemoryRequirements2 b)
+getPipelineIndirectMemoryRequirementsNV device
+                                          createInfo = liftIO . evalContT $ do
+  let vkGetPipelineIndirectMemoryRequirementsNVPtr = pVkGetPipelineIndirectMemoryRequirementsNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetPipelineIndirectMemoryRequirementsNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineIndirectMemoryRequirementsNV is null" Nothing Nothing
+  let vkGetPipelineIndirectMemoryRequirementsNV' = mkVkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNVPtr
+  pCreateInfo <- ContT $ withCStruct (createInfo)
+  pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))
+  lift $ traceAroundEvent "vkGetPipelineIndirectMemoryRequirementsNV" (vkGetPipelineIndirectMemoryRequirementsNV'
+                                                                         (deviceHandle (device))
+                                                                         (forgetExtensions pCreateInfo)
+                                                                         (forgetExtensions (pPMemoryRequirements)))
+  pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements
+  pure $ (pMemoryRequirements)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPipelineIndirectDeviceAddressNV
+  :: FunPtr (Ptr Device_T -> Ptr PipelineIndirectDeviceAddressInfoNV -> IO DeviceAddress) -> Ptr Device_T -> Ptr PipelineIndirectDeviceAddressInfoNV -> IO DeviceAddress
+
+-- | vkGetPipelineIndirectDeviceAddressNV - Get pipeline’s 64-bit device
+-- address
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.Handles.Device', 'PipelineIndirectDeviceAddressInfoNV'
+getPipelineIndirectDeviceAddressNV :: forall io
+                                    . (MonadIO io)
+                                   => -- | #VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter# @device@
+                                      -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
+                                      Device
+                                   -> -- | #VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter# @pInfo@
+                                      -- /must/ be a valid pointer to a valid
+                                      -- 'PipelineIndirectDeviceAddressInfoNV' structure
+                                      PipelineIndirectDeviceAddressInfoNV
+                                   -> io (DeviceAddress)
+getPipelineIndirectDeviceAddressNV device info = liftIO . evalContT $ do
+  let vkGetPipelineIndirectDeviceAddressNVPtr = pVkGetPipelineIndirectDeviceAddressNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetPipelineIndirectDeviceAddressNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineIndirectDeviceAddressNV is null" Nothing Nothing
+  let vkGetPipelineIndirectDeviceAddressNV' = mkVkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNVPtr
+  pInfo <- ContT $ withCStruct (info)
+  r <- lift $ traceAroundEvent "vkGetPipelineIndirectDeviceAddressNV" (vkGetPipelineIndirectDeviceAddressNV'
+                                                                         (deviceHandle (device))
+                                                                         pInfo)
+  pure $ (r)
+
+
+-- | VkComputePipelineIndirectBufferInfoNV - Structure describing the device
+-- address where pipeline’s metadata will be saved
+--
+-- = Members
+--
+-- If @pipelineDeviceAddressCaptureReplay@ is zero, no specific address is
+-- requested. If @pipelineDeviceAddressCaptureReplay@ is not zero, then it
+-- /must/ be an address retrieved from an identically created pipeline on
+-- the same implementation. The pipeline metadata /must/ also be placed on
+-- an identically created buffer and at the same offset using the
+-- 'cmdUpdatePipelineIndirectBufferNV' command.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010# The
+--     pipeline creation flags in
+--     'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'::@flags@ /must/
+--     include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011#
+--     @deviceAddress@ /must/ be aligned to the
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'::@alignment@,
+--     as returned by 'getPipelineIndirectMemoryRequirementsNV'
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012#
+--     @deviceAddress@ /must/ have been allocated from a buffer that was
+--     created with usage
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'
+--     and
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-size-09013# @size@
+--     /must/ be greater than or equal to the
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'::@size@,
+--     as returned by 'getPipelineIndirectMemoryRequirementsNV'
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014#
+--     If @pipelineDeviceAddressCaptureReplay@ is non-zero then the
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputeCaptureReplay>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015#
+--     If @pipelineDeviceAddressCaptureReplay@ is non-zero then that
+--     address /must/ have been allocated with flag
+--     'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'
+--     set
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016#
+--     If @pipelineDeviceAddressCaptureReplay@ is non-zero, the @pipeline@
+--     /must/ have been recreated for replay
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017#
+--     @pipelineDeviceAddressCaptureReplay@ /must/ satisfy the @alignment@
+--     and @size@ requirements similar to @deviceAddress@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType# @sType@
+--     /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV'
+--
+-- -   #VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNext# @pNext@
+--     /must/ be @NULL@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ComputePipelineIndirectBufferInfoNV = ComputePipelineIndirectBufferInfoNV
+  { -- No documentation found for Nested "VkComputePipelineIndirectBufferInfoNV" "deviceAddress"
+    deviceAddress :: DeviceAddress
+  , -- No documentation found for Nested "VkComputePipelineIndirectBufferInfoNV" "size"
+    size :: DeviceSize
+  , -- No documentation found for Nested "VkComputePipelineIndirectBufferInfoNV" "pipelineDeviceAddressCaptureReplay"
+    pipelineDeviceAddressCaptureReplay :: DeviceAddress
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ComputePipelineIndirectBufferInfoNV)
+#endif
+deriving instance Show ComputePipelineIndirectBufferInfoNV
+
+instance ToCStruct ComputePipelineIndirectBufferInfoNV where
+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ComputePipelineIndirectBufferInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (deviceAddress)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (size)
+    poke ((p `plusPtr` 32 :: Ptr DeviceAddress)) (pipelineDeviceAddressCaptureReplay)
+    f
+  cStructSize = 40
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr DeviceAddress)) (zero)
+    f
+
+instance FromCStruct ComputePipelineIndirectBufferInfoNV where
+  peekCStruct p = do
+    deviceAddress <- peek @DeviceAddress ((p `plusPtr` 16 :: Ptr DeviceAddress))
+    size <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
+    pipelineDeviceAddressCaptureReplay <- peek @DeviceAddress ((p `plusPtr` 32 :: Ptr DeviceAddress))
+    pure $ ComputePipelineIndirectBufferInfoNV
+             deviceAddress size pipelineDeviceAddressCaptureReplay
+
+instance Storable ComputePipelineIndirectBufferInfoNV where
+  sizeOf ~_ = 40
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ComputePipelineIndirectBufferInfoNV where
+  zero = ComputePipelineIndirectBufferInfoNV
+           zero
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV - Structure
+-- describing the device-generated compute features that can be supported
+-- by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV'
+-- 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. 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV'
+-- /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_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+  { -- | #features-deviceGeneratedCompute# @deviceGeneratedCompute@ indicates
+    -- whether the implementation supports functionality to generate dispatch
+    -- commands and push constants for the compute pipeline on the device. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
+    deviceGeneratedCompute :: Bool
+  , -- | #features-deviceGeneratedComputePipelines#
+    -- @deviceGeneratedComputePipelines@ indicates whether the implementation
+    -- supports functionality to generate commands to bind compute pipelines on
+    -- the device. See
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
+    deviceGeneratedComputePipelines :: Bool
+  , -- | #features-deviceGeneratedComputeCaptureReplay#
+    -- @deviceGeneratedComputeCaptureReplay@ indicates whether the
+    -- implementation supports functionality to capture compute pipeline
+    -- address and reuse later for replay in
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
+    deviceGeneratedComputeCaptureReplay :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCompute))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedComputePipelines))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedComputeCaptureReplay))
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where
+  peekCStruct p = do
+    deviceGeneratedCompute <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    deviceGeneratedComputePipelines <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    deviceGeneratedComputeCaptureReplay <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    pure $ PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+             (bool32ToBool deviceGeneratedCompute)
+             (bool32ToBool deviceGeneratedComputePipelines)
+             (bool32ToBool deviceGeneratedComputeCaptureReplay)
+
+instance Storable PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where
+  zero = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+           zero
+           zero
+           zero
+
+
+-- | VkPipelineIndirectDeviceAddressInfoNV - Structure specifying the
+-- pipeline to query an address for
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079#
+--     The provided @pipelineBindPoint@ /must/ be of type
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE'
+--
+-- -   #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080#
+--     @pipeline@ /must/ have been created with flag
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--     set
+--
+-- -   #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081#
+--     @pipeline@ /must/ have been created with a
+--     'ComputePipelineIndirectBufferInfoNV' structure specifying a valid
+--     address where its metadata will be saved
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.Handles.Pipeline',
+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getPipelineIndirectDeviceAddressNV'
+data PipelineIndirectDeviceAddressInfoNV = PipelineIndirectDeviceAddressInfoNV
+  { -- | #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter#
+    -- @pipelineBindPoint@ /must/ be a valid
+    -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value
+    pipelineBindPoint :: PipelineBindPoint
+  , -- | #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameter#
+    -- @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle
+    pipeline :: Pipeline
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineIndirectDeviceAddressInfoNV)
+#endif
+deriving instance Show PipelineIndirectDeviceAddressInfoNV
+
+instance ToCStruct PipelineIndirectDeviceAddressInfoNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineIndirectDeviceAddressInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (pipelineBindPoint)
+    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero)
+    f
+
+instance FromCStruct PipelineIndirectDeviceAddressInfoNV where
+  peekCStruct p = do
+    pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 16 :: Ptr PipelineBindPoint))
+    pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline))
+    pure $ PipelineIndirectDeviceAddressInfoNV
+             pipelineBindPoint pipeline
+
+instance Storable PipelineIndirectDeviceAddressInfoNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PipelineIndirectDeviceAddressInfoNV where
+  zero = PipelineIndirectDeviceAddressInfoNV
+           zero
+           zero
+
+
+-- | VkBindPipelineIndirectCommandNV - Structure specifying input data for
+-- the compute pipeline dispatch token
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091#
+--     The
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
+--     feature /must/ be enabled
+--
+-- -   #VUID-VkBindPipelineIndirectCommandNV-None-09092# The referenced
+--     pipeline /must/ have been created with
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   #VUID-VkBindPipelineIndirectCommandNV-None-09093# The referenced
+--     pipeline /must/ have been updated with
+--     'cmdUpdatePipelineIndirectBufferNV'
+--
+-- -   #VUID-VkBindPipelineIndirectCommandNV-None-09094# The referenced
+--     pipeline’s address /must/ have been queried with
+--     'getPipelineIndirectDeviceAddressNV'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute VK_NV_device_generated_commands_compute>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'
+data BindPipelineIndirectCommandNV = BindPipelineIndirectCommandNV
+  { -- | @pipelineAddress@ specifies the pipeline address of the compute pipeline
+    -- that will be used in device generated rendering.
+    pipelineAddress :: DeviceAddress }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BindPipelineIndirectCommandNV)
+#endif
+deriving instance Show BindPipelineIndirectCommandNV
+
+instance ToCStruct BindPipelineIndirectCommandNV where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BindPipelineIndirectCommandNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (pipelineAddress)
+    f
+  cStructSize = 8
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero)
+    f
+
+instance FromCStruct BindPipelineIndirectCommandNV where
+  peekCStruct p = do
+    pipelineAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))
+    pure $ BindPipelineIndirectCommandNV
+             pipelineAddress
+
+instance Storable BindPipelineIndirectCommandNV where
+  sizeOf ~_ = 8
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BindPipelineIndirectCommandNV where
+  zero = BindPipelineIndirectCommandNV
+           zero
+
+
+type NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION = 2
+
+-- No documentation found for TopLevel "VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION"
+pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION = 2
+
+
+type NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME = "VK_NV_device_generated_commands_compute"
+
+-- No documentation found for TopLevel "VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME"
+pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME = "VK_NV_device_generated_commands_compute"
+
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot
@@ -0,0 +1,173 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_device_generated_commands_compute - device extension
+--
+-- == VK_NV_device_generated_commands_compute
+--
+-- [__Name String__]
+--     @VK_NV_device_generated_commands_compute@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     429
+--
+-- [__Revision__]
+--     2
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>
+--
+-- [__Contact__]
+--
+--     -   Vikram Kushwaha
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_device_generated_commands_compute] @vkushwaha-nv%0A*Here describe the issue or question you have about the VK_NV_device_generated_commands_compute extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-07-21
+--
+-- [__Contributors__]
+--
+--     -   Vikram Kushwaha, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Hans-Kristian Arntzen, Valve
+--
+--     -   Mike Blumenkrantz, VALVE
+--
+-- == Description
+--
+-- This extension allows the device to generate commands for binding
+-- compute pipelines, setting push constants and launching compute
+-- dispatches.
+--
+-- == New Commands
+--
+-- -   'cmdUpdatePipelineIndirectBufferNV'
+--
+-- -   'getPipelineIndirectDeviceAddressNV'
+--
+-- -   'getPipelineIndirectMemoryRequirementsNV'
+--
+-- == New Structures
+--
+-- -   'BindPipelineIndirectCommandNV'
+--
+-- -   'ComputePipelineIndirectBufferInfoNV'
+--
+-- -   'PipelineIndirectDeviceAddressInfoNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME'
+--
+-- -   'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV':
+--
+--     -   'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV'
+--
+--     -   'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV'
+--
+-- == Version History
+--
+-- -   Revision 2, 2023-07-21 (Vikram Kushwaha)
+--
+--     -   Rename vkCmdUpdatePipelineIndirectBuffer to
+--         vkCmdUpdatePipelineIndirectBufferNV
+--
+-- -   Revision 1, 2023-06-09 (Vikram Kushwaha)
+--
+--     -   First Revision
+--
+-- == See Also
+--
+-- 'BindPipelineIndirectCommandNV', 'ComputePipelineIndirectBufferInfoNV',
+-- 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',
+-- 'PipelineIndirectDeviceAddressInfoNV',
+-- 'cmdUpdatePipelineIndirectBufferNV',
+-- 'getPipelineIndirectDeviceAddressNV',
+-- 'getPipelineIndirectMemoryRequirementsNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_device_generated_commands_compute  ( BindPipelineIndirectCommandNV
+                                                                  , ComputePipelineIndirectBufferInfoNV
+                                                                  , PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+                                                                  , PipelineIndirectDeviceAddressInfoNV
+                                                                  ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data BindPipelineIndirectCommandNV
+
+instance ToCStruct BindPipelineIndirectCommandNV
+instance Show BindPipelineIndirectCommandNV
+
+instance FromCStruct BindPipelineIndirectCommandNV
+
+
+data ComputePipelineIndirectBufferInfoNV
+
+instance ToCStruct ComputePipelineIndirectBufferInfoNV
+instance Show ComputePipelineIndirectBufferInfoNV
+
+instance FromCStruct ComputePipelineIndirectBufferInfoNV
+
+
+data PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+
+instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+instance Show PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+
+instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
+
+
+data PipelineIndirectDeviceAddressInfoNV
+
+instance ToCStruct PipelineIndirectDeviceAddressInfoNV
+instance Show PipelineIndirectDeviceAddressInfoNV
+
+instance FromCStruct PipelineIndirectDeviceAddressInfoNV
+
diff --git a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs
--- a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs
+++ b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs
@@ -15,8 +15,11 @@
 --     398
 --
 -- [__Revision__]
---     1
+--     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>
 --
@@ -32,6 +35,7 @@
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_displacement_micromap] @pixeljetstream%0A*Here describe the issue or question you have about the VK_NV_displacement_micromap extension* >
 --
 --     -   Eric Werness
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_displacement_micromap] @ewerness-nv%0A*Here describe the issue or question you have about the VK_NV_displacement_micromap extension* >
 --
 -- == Other Extension Metadata
 --
@@ -138,6 +142,10 @@
 --
 --     -   Initial public revision
 --
+-- -   Revision 2, 2023-07-07 (Eric Werness)
+--
+--     -   Add shader support for decode intrinsics
+--
 -- == See Also
 --
 -- 'AccelerationStructureTrianglesDisplacementMicromapNV',
@@ -414,6 +422,7 @@
 --     structures
 --
 -- -   #VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameter#
+--     If @micromap@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
 --     @micromap@ /must/ be a valid 'Vulkan.Extensions.Handles.MicromapEXT'
 --     handle
 --
@@ -517,7 +526,6 @@
     lift $ poke ((p `plusPtr` 88 :: Ptr DeviceSize)) (zero)
     lift $ poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)
     lift $ poke ((p `plusPtr` 112 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr)
-    lift $ poke ((p `plusPtr` 120 :: Ptr MicromapEXT)) (zero)
     lift $ f
 
 instance Zero AccelerationStructureTrianglesDisplacementMicromapNV where
@@ -618,11 +626,11 @@
       conNameDisplacementMicromapFormatNV
       DisplacementMicromapFormatNV
 
-type NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 1
+type NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 2
 
 -- No documentation found for TopLevel "VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION"
 pattern NV_DISPLACEMENT_MICROMAP_SPEC_VERSION :: forall a . Integral a => a
-pattern NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 1
+pattern NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 2
 
 
 type NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME = "VK_NV_displacement_micromap"
diff --git a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot
@@ -15,8 +15,11 @@
 --     398
 --
 -- [__Revision__]
---     1
+--     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>
 --
@@ -32,6 +35,7 @@
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_displacement_micromap] @pixeljetstream%0A*Here describe the issue or question you have about the VK_NV_displacement_micromap extension* >
 --
 --     -   Eric Werness
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_displacement_micromap] @ewerness-nv%0A*Here describe the issue or question you have about the VK_NV_displacement_micromap extension* >
 --
 -- == Other Extension Metadata
 --
@@ -137,6 +141,10 @@
 -- -   Revision 1, 2023-03-17 (Eric Werness)
 --
 --     -   Initial public revision
+--
+-- -   Revision 2, 2023-07-07 (Eric Werness)
+--
+--     -   Add shader support for decode intrinsics
 --
 -- == See Also
 --
diff --git a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs
@@ -0,0 +1,309 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_extended_sparse_address_space - device extension
+--
+-- == VK_NV_extended_sparse_address_space
+--
+-- [__Name String__]
+--     @VK_NV_extended_sparse_address_space@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     493
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   Russell Chou
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_extended_sparse_address_space] @russellcnv%0A*Here describe the issue or question you have about the VK_NV_extended_sparse_address_space extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-10-03
+--
+-- [__Contributors__]
+--
+--     -   Russell Chou, NVIDIA
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+-- == Description
+--
+-- Implementations may be able to support an extended address space for
+-- sparse memory resources, but only for a certain set of usages.
+--
+-- This extension adds a query for the extended limit, and the supported
+-- usages that are allowed for that limit. This limit is an increase to
+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@
+-- when the 'Vulkan.Core10.Handles.Image' or 'Vulkan.Core10.Handles.Buffer'
+-- uses only usages that are supported.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME'
+--
+-- -   'NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-10-03 (Russell Chou)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
+-- 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_extended_sparse_address_space Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_extended_sparse_address_space  ( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV(..)
+                                                              , PhysicalDeviceExtendedSparseAddressSpacePropertiesNV(..)
+                                                              , NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION
+                                                              , pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION
+                                                              , NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME
+                                                              , pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME
+                                                              ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV))
+-- | VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV - Structure
+-- describing feature to use extended sparse address space
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV' 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. 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV' /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_NV_extended_sparse_address_space VK_NV_extended_sparse_address_space>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+  { -- | #features-extendedSparseAddressSpace# @extendedSparseAddressSpace@
+    -- indicates that the implementation supports allowing certain usages of
+    -- sparse memory resources to exceed
+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@.
+    -- See 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'.
+    extendedSparseAddressSpace :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+
+instance ToCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (extendedSparseAddressSpace))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where
+  peekCStruct p = do
+    extendedSparseAddressSpace <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+             (bool32ToBool extendedSparseAddressSpace)
+
+instance Storable PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where
+  zero = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+           zero
+
+
+-- | VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV - Structure
+-- describing sparse address space limits of an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV' 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_NV_extended_sparse_address_space VK_NV_extended_sparse_address_space>,
+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlags',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceExtendedSparseAddressSpacePropertiesNV = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+  { -- | #limits-extendedSparseAddressSpaceSize# @extendedSparseAddressSpaceSize@
+    -- is the total amount of address space available, in bytes, for sparse
+    -- memory resources of all usages if the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpace extendedSparseAddressSpace>
+    -- feature is enabled. This /must/ be greater than or equal to
+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@,
+    -- and the difference in space /must/ only be used with usages allowed
+    -- below. This is an upper bound on the sum of the sizes of all sparse
+    -- resources, regardless of whether any memory is bound to them.
+    extendedSparseAddressSpaceSize :: DeviceSize
+  , -- | #limits-extendedSparseImageUsageFlags# @extendedSparseImageUsageFlags@
+    -- is a bitmask of
+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' of usages
+    -- which /may/ allow an implementation to use the full
+    -- @extendedSparseAddressSpaceSize@ space.
+    extendedSparseImageUsageFlags :: ImageUsageFlags
+  , -- | #limits-extendedSparseBufferUsageFlags# @extendedSparseBufferUsageFlags@
+    -- is a bitmask of
+    -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' of usages
+    -- which /may/ allow an implementation to use the full
+    -- @extendedSparseAddressSpaceSize@ space.
+    extendedSparseBufferUsageFlags :: BufferUsageFlags
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceExtendedSparseAddressSpacePropertiesNV)
+#endif
+deriving instance Show PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+
+instance ToCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceExtendedSparseAddressSpacePropertiesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (extendedSparseAddressSpaceSize)
+    poke ((p `plusPtr` 24 :: Ptr ImageUsageFlags)) (extendedSparseImageUsageFlags)
+    poke ((p `plusPtr` 28 :: Ptr BufferUsageFlags)) (extendedSparseBufferUsageFlags)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr ImageUsageFlags)) (zero)
+    poke ((p `plusPtr` 28 :: Ptr BufferUsageFlags)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where
+  peekCStruct p = do
+    extendedSparseAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    extendedSparseImageUsageFlags <- peek @ImageUsageFlags ((p `plusPtr` 24 :: Ptr ImageUsageFlags))
+    extendedSparseBufferUsageFlags <- peek @BufferUsageFlags ((p `plusPtr` 28 :: Ptr BufferUsageFlags))
+    pure $ PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+             extendedSparseAddressSpaceSize
+             extendedSparseImageUsageFlags
+             extendedSparseBufferUsageFlags
+
+instance Storable PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where
+  zero = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+           zero
+           zero
+           zero
+
+
+type NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION"
+pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION = 1
+
+
+type NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME = "VK_NV_extended_sparse_address_space"
+
+-- No documentation found for TopLevel "VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME"
+pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME = "VK_NV_extended_sparse_address_space"
+
diff --git a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot
@@ -0,0 +1,119 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_extended_sparse_address_space - device extension
+--
+-- == VK_NV_extended_sparse_address_space
+--
+-- [__Name String__]
+--     @VK_NV_extended_sparse_address_space@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     493
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   Russell Chou
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_extended_sparse_address_space] @russellcnv%0A*Here describe the issue or question you have about the VK_NV_extended_sparse_address_space extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-10-03
+--
+-- [__Contributors__]
+--
+--     -   Russell Chou, NVIDIA
+--
+--     -   Christoph Kubisch, NVIDIA
+--
+--     -   Eric Werness, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+-- == Description
+--
+-- Implementations may be able to support an extended address space for
+-- sparse memory resources, but only for a certain set of usages.
+--
+-- This extension adds a query for the extended limit, and the supported
+-- usages that are allowed for that limit. This limit is an increase to
+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@
+-- when the 'Vulkan.Core10.Handles.Image' or 'Vulkan.Core10.Handles.Buffer'
+-- uses only usages that are supported.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME'
+--
+-- -   'NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-10-03 (Russell Chou)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',
+-- 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_extended_sparse_address_space Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_extended_sparse_address_space  ( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+                                                              , PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+                                                              ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+
+instance ToCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+instance Show PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+
+instance FromCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
+
+
+data PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+
+instance ToCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+instance Show PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+
+instance FromCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
+
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory.hs b/src/Vulkan/Extensions/VK_NV_external_memory.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities VK_NV_external_memory_capabilities>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_external_memory@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities VK_NV_external_memory_capabilities>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_external_memory@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_external_memory_capabilities@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_external_memory_capabilities@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory VK_NV_external_memory>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_external_memory_win32@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory VK_NV_external_memory>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Deprecated/ by @VK_KHR_external_memory_win32@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs b/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs
--- a/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs
+++ b/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Bolz
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs
--- a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs
+++ b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Bolz
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Bolz
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs
--- a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_KHR_fragment_shader_barycentric@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs
--- a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
 --
@@ -352,8 +355,8 @@
 -- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameter#
 --     @shadingRate@ /must/ be a valid 'FragmentShadingRateNV' value
 --
--- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter# Any
---     given element of @combinerOps@ /must/ be a valid
+-- -   #VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter# Each
+--     element of @combinerOps@ /must/ be a valid
 --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'
 --     value
 --
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs
--- a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs
+++ b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Bolz
diff --git a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Bolz
diff --git a/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs b/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs
--- a/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs
+++ b/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Daniel Koch
diff --git a/src/Vulkan/Extensions/VK_NV_glsl_shader.hs b/src/Vulkan/Extensions/VK_NV_glsl_shader.hs
--- a/src/Vulkan/Extensions/VK_NV_glsl_shader.hs
+++ b/src/Vulkan/Extensions/VK_NV_glsl_shader.hs
@@ -17,7 +17,10 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__; __Deprecation state__]
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Deprecation State__]
 --
 --     -   /Deprecated/ without replacement
 --
diff --git a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs
--- a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs
+++ b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs
--- a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs
+++ b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_low_latency.hs b/src/Vulkan/Extensions/VK_NV_low_latency.hs
--- a/src/Vulkan/Extensions/VK_NV_low_latency.hs
+++ b/src/Vulkan/Extensions/VK_NV_low_latency.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Charles Hansen
diff --git a/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot b/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Charles Hansen
diff --git a/src/Vulkan/Extensions/VK_NV_low_latency2.hs b/src/Vulkan/Extensions/VK_NV_low_latency2.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_low_latency2.hs
@@ -0,0 +1,1327 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_low_latency2 - device extension
+--
+-- == VK_NV_low_latency2
+--
+-- [__Name String__]
+--     @VK_NV_low_latency2@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     506
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   Charles Hansen
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_low_latency2] @cshansen%0A*Here describe the issue or question you have about the VK_NV_low_latency2 extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-25
+--
+-- [__Contributors__]
+--
+--     -   Charles Hansen, NVIDIA
+--
+--     -   Liam Middlebrook, NVIDIA
+--
+--     -   Lionel Duc, NVIDIA
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Eric Sullivan, NVIDIA
+--
+-- == New Commands
+--
+-- -   'getLatencyTimingsNV'
+--
+-- -   'latencySleepNV'
+--
+-- -   'queueNotifyOutOfBandNV'
+--
+-- -   'setLatencyMarkerNV'
+--
+-- -   'setLatencySleepModeNV'
+--
+-- == New Structures
+--
+-- -   'GetLatencyMarkerInfoNV'
+--
+-- -   'LatencySleepInfoNV'
+--
+-- -   'LatencySleepModeInfoNV'
+--
+-- -   'LatencyTimingsFrameReportNV'
+--
+-- -   'OutOfBandQueueTypeInfoNV'
+--
+-- -   'SetLatencyMarkerInfoNV'
+--
+-- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2':
+--
+--     -   'LatencySubmissionPresentIdNV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR':
+--
+--     -   'LatencySurfaceCapabilitiesNV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR':
+--
+--     -   'SwapchainLatencyCreateInfoNV'
+--
+-- == New Enums
+--
+-- -   'LatencyMarkerNV'
+--
+-- -   'OutOfBandQueueTypeNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_LOW_LATENCY_2_EXTENSION_NAME'
+--
+-- -   'NV_LOW_LATENCY_2_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV'
+--
+-- == Description
+--
+-- This extension gives applications timing suggestions on when to start
+-- the recording of new frames to reduce the latency between input sampling
+-- and frame presentation. Applications can accomplish this through the
+-- extension by calling 'setLatencySleepModeNV' to allow the driver to pace
+-- a given swapchain, then calling 'latencySleepNV' before input sampling
+-- to delay the start of the CPU side work. Additional methods and
+-- structures are provided to give insight into the latency pipeline of an
+-- application through the latency markers. @VK_NV_low_latency@ provides
+-- legacy support for applications that make use of the NVIDIA Reflex SDK
+-- whereas new implementations should use the @VK_NV_low_latency2@
+-- extension.
+--
+-- == Issues
+--
+-- 1) How does Low Latency 2 work with applications that utilize device
+-- groups?
+--
+-- Low Latency 2 does not support device groups.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-09-25 (Charles Hansen)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'GetLatencyMarkerInfoNV', 'LatencyMarkerNV', 'LatencySleepInfoNV',
+-- 'LatencySleepModeInfoNV', 'LatencySubmissionPresentIdNV',
+-- 'LatencySurfaceCapabilitiesNV', 'LatencyTimingsFrameReportNV',
+-- 'OutOfBandQueueTypeInfoNV', 'OutOfBandQueueTypeNV',
+-- 'SetLatencyMarkerInfoNV', 'SwapchainLatencyCreateInfoNV',
+-- 'getLatencyTimingsNV', 'latencySleepNV', 'queueNotifyOutOfBandNV',
+-- 'setLatencyMarkerNV', 'setLatencySleepModeNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_low_latency2 Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_low_latency2  ( setLatencySleepModeNV
+                                             , latencySleepNV
+                                             , setLatencyMarkerNV
+                                             , getLatencyTimingsNV
+                                             , queueNotifyOutOfBandNV
+                                             , LatencySleepModeInfoNV(..)
+                                             , LatencySleepInfoNV(..)
+                                             , SetLatencyMarkerInfoNV(..)
+                                             , GetLatencyMarkerInfoNV(..)
+                                             , LatencyTimingsFrameReportNV(..)
+                                             , OutOfBandQueueTypeInfoNV(..)
+                                             , LatencySubmissionPresentIdNV(..)
+                                             , SwapchainLatencyCreateInfoNV(..)
+                                             , LatencySurfaceCapabilitiesNV(..)
+                                             , LatencyMarkerNV( LATENCY_MARKER_SIMULATION_START_NV
+                                                              , LATENCY_MARKER_SIMULATION_END_NV
+                                                              , LATENCY_MARKER_RENDERSUBMIT_START_NV
+                                                              , LATENCY_MARKER_RENDERSUBMIT_END_NV
+                                                              , LATENCY_MARKER_PRESENT_START_NV
+                                                              , LATENCY_MARKER_PRESENT_END_NV
+                                                              , LATENCY_MARKER_INPUT_SAMPLE_NV
+                                                              , LATENCY_MARKER_TRIGGER_FLASH_NV
+                                                              , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV
+                                                              , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV
+                                                              , LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV
+                                                              , LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV
+                                                              , ..
+                                                              )
+                                             , OutOfBandQueueTypeNV( OUT_OF_BAND_QUEUE_TYPE_RENDER_NV
+                                                                   , OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV
+                                                                   , ..
+                                                                   )
+                                             , NV_LOW_LATENCY_2_SPEC_VERSION
+                                             , pattern NV_LOW_LATENCY_2_SPEC_VERSION
+                                             , NV_LOW_LATENCY_2_EXTENSION_NAME
+                                             , pattern NV_LOW_LATENCY_2_EXTENSION_NAME
+                                             , SwapchainKHR(..)
+                                             , PresentModeKHR(..)
+                                             ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Exception.Base (bracket)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Alloc (callocBytes)
+import Foreign.Marshal.Alloc (free)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+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 Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Word (Word64)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkGetLatencyTimingsNV))
+import Vulkan.Dynamic (DeviceCmds(pVkLatencySleepNV))
+import Vulkan.Dynamic (DeviceCmds(pVkQueueNotifyOutOfBandNV))
+import Vulkan.Dynamic (DeviceCmds(pVkSetLatencyMarkerNV))
+import Vulkan.Dynamic (DeviceCmds(pVkSetLatencySleepModeNV))
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR)
+import Vulkan.Core10.Handles (Queue)
+import Vulkan.Core10.Handles (Queue(..))
+import Vulkan.Core10.Handles (Queue(Queue))
+import Vulkan.Core10.Handles (Queue_T)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Handles (Semaphore)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Extensions.Handles (SwapchainKHR)
+import Vulkan.Extensions.Handles (SwapchainKHR(..))
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR(..))
+import Vulkan.Extensions.Handles (SwapchainKHR(..))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkSetLatencySleepModeNV
+  :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepModeInfoNV -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepModeInfoNV -> IO Result
+
+-- | vkSetLatencySleepModeNV - Enable or Disable low latency mode on a
+-- swapchain
+--
+-- = Description
+--
+-- If @pSleepModeInfo@ is @NULL@, 'setLatencySleepModeNV' will disable low
+-- latency mode, low latency boost, and set the minimum present interval
+-- previously specified by 'LatencySleepModeInfoNV' to zero on @swapchain@.
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'Vulkan.Core10.Handles.Device', 'LatencySleepModeInfoNV',
+-- 'Vulkan.Extensions.Handles.SwapchainKHR'
+setLatencySleepModeNV :: forall io
+                       . (MonadIO io)
+                      => -- | @device@ is the device associated with @swapchain@.
+                         --
+                         -- #VUID-vkSetLatencySleepModeNV-device-parameter# @device@ /must/ be a
+                         -- valid 'Vulkan.Core10.Handles.Device' handle
+                         Device
+                      -> -- | @swapchain@ is the swapchain to enable or disable low latency mode on.
+                         --
+                         -- #VUID-vkSetLatencySleepModeNV-swapchain-parameter# @swapchain@ /must/ be
+                         -- a valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle
+                         --
+                         -- #VUID-vkSetLatencySleepModeNV-swapchain-parent# @swapchain@ /must/ have
+                         -- been created, allocated, or retrieved from @device@
+                         SwapchainKHR
+                      -> -- | @pSleepModeInfo@ is @NULL@ or a pointer to a 'LatencySleepModeInfoNV'
+                         -- structure specifying the parameters of the latency sleep mode.
+                         --
+                         -- #VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameter# @pSleepModeInfo@
+                         -- /must/ be a valid pointer to a valid 'LatencySleepModeInfoNV' structure
+                         LatencySleepModeInfoNV
+                      -> io ()
+setLatencySleepModeNV device swapchain sleepModeInfo = liftIO . evalContT $ do
+  let vkSetLatencySleepModeNVPtr = pVkSetLatencySleepModeNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkSetLatencySleepModeNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetLatencySleepModeNV is null" Nothing Nothing
+  let vkSetLatencySleepModeNV' = mkVkSetLatencySleepModeNV vkSetLatencySleepModeNVPtr
+  pSleepModeInfo <- ContT $ withCStruct (sleepModeInfo)
+  r <- lift $ traceAroundEvent "vkSetLatencySleepModeNV" (vkSetLatencySleepModeNV'
+                                                            (deviceHandle (device))
+                                                            (swapchain)
+                                                            pSleepModeInfo)
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkLatencySleepNV
+  :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepInfoNV -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepInfoNV -> IO Result
+
+-- No documentation found for TopLevel "vkLatencySleepNV"
+latencySleepNV :: forall io
+                . (MonadIO io)
+               => -- No documentation found for Nested "vkLatencySleepNV" "device"
+                  Device
+               -> -- No documentation found for Nested "vkLatencySleepNV" "swapchain"
+                  SwapchainKHR
+               -> -- No documentation found for Nested "vkLatencySleepNV" "pSleepInfo"
+                  LatencySleepInfoNV
+               -> io ()
+latencySleepNV device swapchain sleepInfo = liftIO . evalContT $ do
+  let vkLatencySleepNVPtr = pVkLatencySleepNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkLatencySleepNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkLatencySleepNV is null" Nothing Nothing
+  let vkLatencySleepNV' = mkVkLatencySleepNV vkLatencySleepNVPtr
+  pSleepInfo <- ContT $ withCStruct (sleepInfo)
+  r <- lift $ traceAroundEvent "vkLatencySleepNV" (vkLatencySleepNV'
+                                                     (deviceHandle (device))
+                                                     (swapchain)
+                                                     pSleepInfo)
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkSetLatencyMarkerNV
+  :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr SetLatencyMarkerInfoNV -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Ptr SetLatencyMarkerInfoNV -> IO ()
+
+-- No documentation found for TopLevel "vkSetLatencyMarkerNV"
+setLatencyMarkerNV :: forall io
+                    . (MonadIO io)
+                   => -- No documentation found for Nested "vkSetLatencyMarkerNV" "device"
+                      Device
+                   -> -- No documentation found for Nested "vkSetLatencyMarkerNV" "swapchain"
+                      SwapchainKHR
+                   -> -- No documentation found for Nested "vkSetLatencyMarkerNV" "pLatencyMarkerInfo"
+                      SetLatencyMarkerInfoNV
+                   -> io ()
+setLatencyMarkerNV device swapchain latencyMarkerInfo = liftIO . evalContT $ do
+  let vkSetLatencyMarkerNVPtr = pVkSetLatencyMarkerNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkSetLatencyMarkerNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetLatencyMarkerNV is null" Nothing Nothing
+  let vkSetLatencyMarkerNV' = mkVkSetLatencyMarkerNV vkSetLatencyMarkerNVPtr
+  pLatencyMarkerInfo <- ContT $ withCStruct (latencyMarkerInfo)
+  lift $ traceAroundEvent "vkSetLatencyMarkerNV" (vkSetLatencyMarkerNV'
+                                                    (deviceHandle (device))
+                                                    (swapchain)
+                                                    pLatencyMarkerInfo)
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetLatencyTimingsNV
+  :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr Word32 -> Ptr GetLatencyMarkerInfoNV -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Ptr Word32 -> Ptr GetLatencyMarkerInfoNV -> IO ()
+
+-- No documentation found for TopLevel "vkGetLatencyTimingsNV"
+getLatencyTimingsNV :: forall io
+                     . (MonadIO io)
+                    => -- No documentation found for Nested "vkGetLatencyTimingsNV" "device"
+                       Device
+                    -> -- No documentation found for Nested "vkGetLatencyTimingsNV" "swapchain"
+                       SwapchainKHR
+                    -> io (("timingCount" ::: Word32), GetLatencyMarkerInfoNV)
+getLatencyTimingsNV device swapchain = liftIO . evalContT $ do
+  let vkGetLatencyTimingsNVPtr = pVkGetLatencyTimingsNV (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetLatencyTimingsNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetLatencyTimingsNV is null" Nothing Nothing
+  let vkGetLatencyTimingsNV' = mkVkGetLatencyTimingsNV vkGetLatencyTimingsNVPtr
+  pPTimingCount <- ContT $ bracket (callocBytes @Word32 4) free
+  pPLatencyMarkerInfo <- ContT (withZeroCStruct @GetLatencyMarkerInfoNV)
+  lift $ traceAroundEvent "vkGetLatencyTimingsNV" (vkGetLatencyTimingsNV'
+                                                     (deviceHandle (device))
+                                                     (swapchain)
+                                                     (pPTimingCount)
+                                                     (pPLatencyMarkerInfo))
+  pTimingCount <- lift $ peek @Word32 pPTimingCount
+  pLatencyMarkerInfo <- lift $ peekCStruct @GetLatencyMarkerInfoNV pPLatencyMarkerInfo
+  pure $ (pTimingCount, pLatencyMarkerInfo)
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkQueueNotifyOutOfBandNV
+  :: FunPtr (Ptr Queue_T -> Ptr OutOfBandQueueTypeInfoNV -> IO ()) -> Ptr Queue_T -> Ptr OutOfBandQueueTypeInfoNV -> IO ()
+
+-- | vkQueueNotifyOutOfBandNV - Notify out of band queue
+--
+-- == 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> |
+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+
+-- | -                                                                                                                          | -                                                                                                                      | -                                                                                                                           | Any                                                                                                                   | -                                                                                                                                      |
+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'OutOfBandQueueTypeInfoNV', 'Vulkan.Core10.Handles.Queue'
+queueNotifyOutOfBandNV :: forall io
+                        . (MonadIO io)
+                       => -- | @queue@ is the VkQueue to be marked as out of band.
+                          --
+                          -- #VUID-vkQueueNotifyOutOfBandNV-queue-parameter# @queue@ /must/ be a
+                          -- valid 'Vulkan.Core10.Handles.Queue' handle
+                          Queue
+                       -> -- | @pQueueTypeInfo@ is a pointer to a 'OutOfBandQueueTypeInfoNV' structure
+                          -- specifying the queue type.
+                          --
+                          -- #VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameter#
+                          -- @pQueueTypeInfo@ /must/ be a valid pointer to a valid
+                          -- 'OutOfBandQueueTypeInfoNV' structure
+                          OutOfBandQueueTypeInfoNV
+                       -> io ()
+queueNotifyOutOfBandNV queue queueTypeInfo = liftIO . evalContT $ do
+  let vkQueueNotifyOutOfBandNVPtr = pVkQueueNotifyOutOfBandNV (case queue of Queue{deviceCmds} -> deviceCmds)
+  lift $ unless (vkQueueNotifyOutOfBandNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueNotifyOutOfBandNV is null" Nothing Nothing
+  let vkQueueNotifyOutOfBandNV' = mkVkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNVPtr
+  pQueueTypeInfo <- ContT $ withCStruct (queueTypeInfo)
+  lift $ traceAroundEvent "vkQueueNotifyOutOfBandNV" (vkQueueNotifyOutOfBandNV'
+                                                        (queueHandle (queue))
+                                                        pQueueTypeInfo)
+  pure $ ()
+
+
+-- | VkLatencySleepModeInfoNV - Structure to set low latency mode
+--
+-- = Description
+--
+-- If @lowLatencyMode@ is set to 'Vulkan.Core10.FundamentalTypes.FALSE',
+-- @lowLatencyBoost@ will still hint to the GPU to increase its power state
+-- and 'latencySleepNV' will still enforce @minimumIntervalUs@ between
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' calls.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'setLatencySleepModeNV'
+data LatencySleepModeInfoNV = LatencySleepModeInfoNV
+  { -- | @lowLatencyMode@ is the toggle to enable or disable low latency mode.
+    lowLatencyMode :: Bool
+  , -- | @lowLatencyBoost@ allows an application to hint to the GPU to increase
+    -- performance to provide additional latency savings at a cost of increased
+    -- power consumption.
+    lowLatencyBoost :: Bool
+  , -- No documentation found for Nested "VkLatencySleepModeInfoNV" "minimumIntervalUs"
+    minimumIntervalUs :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LatencySleepModeInfoNV)
+#endif
+deriving instance Show LatencySleepModeInfoNV
+
+instance ToCStruct LatencySleepModeInfoNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LatencySleepModeInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (lowLatencyMode))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (lowLatencyBoost))
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (minimumIntervalUs)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct LatencySleepModeInfoNV where
+  peekCStruct p = do
+    lowLatencyMode <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    lowLatencyBoost <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    minimumIntervalUs <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ LatencySleepModeInfoNV
+             (bool32ToBool lowLatencyMode)
+             (bool32ToBool lowLatencyBoost)
+             minimumIntervalUs
+
+instance Storable LatencySleepModeInfoNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero LatencySleepModeInfoNV where
+  zero = LatencySleepModeInfoNV
+           zero
+           zero
+           zero
+
+
+-- No documentation found for TopLevel "VkLatencySleepInfoNV"
+data LatencySleepInfoNV = LatencySleepInfoNV
+  { -- No documentation found for Nested "VkLatencySleepInfoNV" "signalSemaphore"
+    signalSemaphore :: Semaphore
+  , -- No documentation found for Nested "VkLatencySleepInfoNV" "value"
+    value :: Word64
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LatencySleepInfoNV)
+#endif
+deriving instance Show LatencySleepInfoNV
+
+instance ToCStruct LatencySleepInfoNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LatencySleepInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (signalSemaphore)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (value)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)
+    f
+
+instance FromCStruct LatencySleepInfoNV where
+  peekCStruct p = do
+    signalSemaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))
+    value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
+    pure $ LatencySleepInfoNV
+             signalSemaphore value
+
+instance Storable LatencySleepInfoNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero LatencySleepInfoNV where
+  zero = LatencySleepInfoNV
+           zero
+           zero
+
+
+-- No documentation found for TopLevel "VkSetLatencyMarkerInfoNV"
+data SetLatencyMarkerInfoNV = SetLatencyMarkerInfoNV
+  { -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "presentID"
+    presentID :: Word64
+  , -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "marker"
+    marker :: LatencyMarkerNV
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SetLatencyMarkerInfoNV)
+#endif
+deriving instance Show SetLatencyMarkerInfoNV
+
+instance ToCStruct SetLatencyMarkerInfoNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SetLatencyMarkerInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (presentID)
+    poke ((p `plusPtr` 24 :: Ptr LatencyMarkerNV)) (marker)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr LatencyMarkerNV)) (zero)
+    f
+
+instance FromCStruct SetLatencyMarkerInfoNV where
+  peekCStruct p = do
+    presentID <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64))
+    marker <- peek @LatencyMarkerNV ((p `plusPtr` 24 :: Ptr LatencyMarkerNV))
+    pure $ SetLatencyMarkerInfoNV
+             presentID marker
+
+instance Storable SetLatencyMarkerInfoNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SetLatencyMarkerInfoNV where
+  zero = SetLatencyMarkerInfoNV
+           zero
+           zero
+
+
+-- No documentation found for TopLevel "VkGetLatencyMarkerInfoNV"
+data GetLatencyMarkerInfoNV = GetLatencyMarkerInfoNV
+  { -- No documentation found for Nested "VkGetLatencyMarkerInfoNV" "pTimings"
+    timings :: Ptr LatencyTimingsFrameReportNV }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (GetLatencyMarkerInfoNV)
+#endif
+deriving instance Show GetLatencyMarkerInfoNV
+
+instance ToCStruct GetLatencyMarkerInfoNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p GetLatencyMarkerInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr LatencyTimingsFrameReportNV))) (timings)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr LatencyTimingsFrameReportNV))) (zero)
+    f
+
+instance FromCStruct GetLatencyMarkerInfoNV where
+  peekCStruct p = do
+    pTimings <- peek @(Ptr LatencyTimingsFrameReportNV) ((p `plusPtr` 16 :: Ptr (Ptr LatencyTimingsFrameReportNV)))
+    pure $ GetLatencyMarkerInfoNV
+             pTimings
+
+instance Storable GetLatencyMarkerInfoNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero GetLatencyMarkerInfoNV where
+  zero = GetLatencyMarkerInfoNV
+           zero
+
+
+-- | VkLatencyTimingsFrameReportNV - Structure containing latency data
+--
+-- = Members
+--
+-- The members of the 'LatencyTimingsFrameReportNV' structure describe the
+-- following:
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'GetLatencyMarkerInfoNV',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data LatencyTimingsFrameReportNV = LatencyTimingsFrameReportNV
+  { -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "presentID"
+    presentID :: Word64
+  , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "inputSampleTimeUs"
+    inputSampleTimeUs :: Word64
+  , -- | @simStartTimeUs@ is the timestamp written when 'setLatencyMarkerNV' is
+    -- called with the 'LatencyMarkerNV' enum
+    -- 'LATENCY_MARKER_SIMULATION_START_NV'.
+    simStartTimeUs :: Word64
+  , -- | @simEndTimeUs@ is the timestamp written when 'setLatencyMarkerNV' is
+    -- called with the 'LatencyMarkerNV' enum
+    -- 'LATENCY_MARKER_SIMULATION_END_NV'
+    simEndTimeUs :: Word64
+  , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "renderSubmitStartTimeUs"
+    renderSubmitStartTimeUs :: Word64
+  , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "renderSubmitEndTimeUs"
+    renderSubmitEndTimeUs :: Word64
+  , -- | @presentStartTimeUs@ is the timestamp written when 'setLatencyMarkerNV'
+    -- is called with the 'LatencyMarkerNV' enum
+    -- 'LATENCY_MARKER_PRESENT_START_NV'.
+    presentStartTimeUs :: Word64
+  , -- | @presentEndTimeUs@ is the timestamp written when 'setLatencyMarkerNV' is
+    -- called with the 'LatencyMarkerNV' enum 'LATENCY_MARKER_PRESENT_END_NV'.
+    presentEndTimeUs :: Word64
+  , -- | @driverStartTimeUs@ is the timestamp written when the first
+    -- 'Vulkan.Core10.Queue.queueSubmit' for the frame is called.
+    driverStartTimeUs :: Word64
+  , -- | @driverEndTimeUs@ is the timestamp written when the final
+    -- 'Vulkan.Core10.Queue.queueSubmit' hands off from the Vulkan Driver.
+    driverEndTimeUs :: Word64
+  , -- | @osRenderQueueStartTimeUs@ is the timestamp written when the final
+    -- 'Vulkan.Core10.Queue.queueSubmit' hands off from the Vulkan Driver.
+    osRenderQueueStartTimeUs :: Word64
+  , -- | @osRenderQueueEndTimeUs@ is the timestamp written when the first
+    -- submission reaches the GPU.
+    osRenderQueueEndTimeUs :: Word64
+  , -- | @gpuRenderStartTimeUs@ is the timestamp written when the first
+    -- submission reaches the GPU.
+    gpuRenderStartTimeUs :: Word64
+  , -- | @gpuRenderEndTimeUs@ is the timestamp written when the final submission
+    -- finishes on the GPU for the frame.
+    gpuRenderEndTimeUs :: Word64
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LatencyTimingsFrameReportNV)
+#endif
+deriving instance Show LatencyTimingsFrameReportNV
+
+instance ToCStruct LatencyTimingsFrameReportNV where
+  withCStruct x f = allocaBytes 128 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LatencyTimingsFrameReportNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (presentID)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (inputSampleTimeUs)
+    poke ((p `plusPtr` 32 :: Ptr Word64)) (simStartTimeUs)
+    poke ((p `plusPtr` 40 :: Ptr Word64)) (simEndTimeUs)
+    poke ((p `plusPtr` 48 :: Ptr Word64)) (renderSubmitStartTimeUs)
+    poke ((p `plusPtr` 56 :: Ptr Word64)) (renderSubmitEndTimeUs)
+    poke ((p `plusPtr` 64 :: Ptr Word64)) (presentStartTimeUs)
+    poke ((p `plusPtr` 72 :: Ptr Word64)) (presentEndTimeUs)
+    poke ((p `plusPtr` 80 :: Ptr Word64)) (driverStartTimeUs)
+    poke ((p `plusPtr` 88 :: Ptr Word64)) (driverEndTimeUs)
+    poke ((p `plusPtr` 96 :: Ptr Word64)) (osRenderQueueStartTimeUs)
+    poke ((p `plusPtr` 104 :: Ptr Word64)) (osRenderQueueEndTimeUs)
+    poke ((p `plusPtr` 112 :: Ptr Word64)) (gpuRenderStartTimeUs)
+    poke ((p `plusPtr` 120 :: Ptr Word64)) (gpuRenderEndTimeUs)
+    f
+  cStructSize = 128
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 48 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 56 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 64 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 72 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 80 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 88 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 96 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 104 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 112 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 120 :: Ptr Word64)) (zero)
+    f
+
+instance FromCStruct LatencyTimingsFrameReportNV where
+  peekCStruct p = do
+    presentID <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64))
+    inputSampleTimeUs <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
+    simStartTimeUs <- peek @Word64 ((p `plusPtr` 32 :: Ptr Word64))
+    simEndTimeUs <- peek @Word64 ((p `plusPtr` 40 :: Ptr Word64))
+    renderSubmitStartTimeUs <- peek @Word64 ((p `plusPtr` 48 :: Ptr Word64))
+    renderSubmitEndTimeUs <- peek @Word64 ((p `plusPtr` 56 :: Ptr Word64))
+    presentStartTimeUs <- peek @Word64 ((p `plusPtr` 64 :: Ptr Word64))
+    presentEndTimeUs <- peek @Word64 ((p `plusPtr` 72 :: Ptr Word64))
+    driverStartTimeUs <- peek @Word64 ((p `plusPtr` 80 :: Ptr Word64))
+    driverEndTimeUs <- peek @Word64 ((p `plusPtr` 88 :: Ptr Word64))
+    osRenderQueueStartTimeUs <- peek @Word64 ((p `plusPtr` 96 :: Ptr Word64))
+    osRenderQueueEndTimeUs <- peek @Word64 ((p `plusPtr` 104 :: Ptr Word64))
+    gpuRenderStartTimeUs <- peek @Word64 ((p `plusPtr` 112 :: Ptr Word64))
+    gpuRenderEndTimeUs <- peek @Word64 ((p `plusPtr` 120 :: Ptr Word64))
+    pure $ LatencyTimingsFrameReportNV
+             presentID
+             inputSampleTimeUs
+             simStartTimeUs
+             simEndTimeUs
+             renderSubmitStartTimeUs
+             renderSubmitEndTimeUs
+             presentStartTimeUs
+             presentEndTimeUs
+             driverStartTimeUs
+             driverEndTimeUs
+             osRenderQueueStartTimeUs
+             osRenderQueueEndTimeUs
+             gpuRenderStartTimeUs
+             gpuRenderEndTimeUs
+
+instance Storable LatencyTimingsFrameReportNV where
+  sizeOf ~_ = 128
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero LatencyTimingsFrameReportNV where
+  zero = LatencyTimingsFrameReportNV
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkOutOfBandQueueTypeInfoNV - Structure used to describe the queue that
+-- is being marked as Out of Band
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'OutOfBandQueueTypeNV',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'queueNotifyOutOfBandNV'
+data OutOfBandQueueTypeInfoNV = OutOfBandQueueTypeInfoNV
+  { -- | @queueType@ describes the usage of the queue to be marked as out of
+    -- band.
+    --
+    -- #VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameter# @queueType@ /must/
+    -- be a valid 'OutOfBandQueueTypeNV' value
+    queueType :: OutOfBandQueueTypeNV }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (OutOfBandQueueTypeInfoNV)
+#endif
+deriving instance Show OutOfBandQueueTypeInfoNV
+
+instance ToCStruct OutOfBandQueueTypeInfoNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p OutOfBandQueueTypeInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr OutOfBandQueueTypeNV)) (queueType)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr OutOfBandQueueTypeNV)) (zero)
+    f
+
+instance FromCStruct OutOfBandQueueTypeInfoNV where
+  peekCStruct p = do
+    queueType <- peek @OutOfBandQueueTypeNV ((p `plusPtr` 16 :: Ptr OutOfBandQueueTypeNV))
+    pure $ OutOfBandQueueTypeInfoNV
+             queueType
+
+instance Storable OutOfBandQueueTypeInfoNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero OutOfBandQueueTypeInfoNV where
+  zero = OutOfBandQueueTypeInfoNV
+           zero
+
+
+-- | VkLatencySubmissionPresentIdNV - Structure used to associate a
+-- queueSubmit with a presentId
+--
+-- = Description
+--
+-- For any submission to be tracked with low latency mode pacing, it needs
+-- to be associated with other submissions in a given present. Applications
+-- :must include the VkLatencySubmissionPresentIdNV in the pNext chain of
+-- 'Vulkan.Core10.Queue.queueSubmit' to associate that submission with the
+-- @presentId@ present for low latency mode.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data LatencySubmissionPresentIdNV = LatencySubmissionPresentIdNV
+  { -- No documentation found for Nested "VkLatencySubmissionPresentIdNV" "presentID"
+    presentID :: Word64 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LatencySubmissionPresentIdNV)
+#endif
+deriving instance Show LatencySubmissionPresentIdNV
+
+instance ToCStruct LatencySubmissionPresentIdNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LatencySubmissionPresentIdNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (presentID)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)
+    f
+
+instance FromCStruct LatencySubmissionPresentIdNV where
+  peekCStruct p = do
+    presentID <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64))
+    pure $ LatencySubmissionPresentIdNV
+             presentID
+
+instance Storable LatencySubmissionPresentIdNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero LatencySubmissionPresentIdNV where
+  zero = LatencySubmissionPresentIdNV
+           zero
+
+
+-- | VkSwapchainLatencyCreateInfoNV - Specify that a swapchain will use low
+-- latency mode
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data SwapchainLatencyCreateInfoNV = SwapchainLatencyCreateInfoNV
+  { -- No documentation found for Nested "VkSwapchainLatencyCreateInfoNV" "latencyModeEnable"
+    latencyModeEnable :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SwapchainLatencyCreateInfoNV)
+#endif
+deriving instance Show SwapchainLatencyCreateInfoNV
+
+instance ToCStruct SwapchainLatencyCreateInfoNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SwapchainLatencyCreateInfoNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (latencyModeEnable))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct SwapchainLatencyCreateInfoNV where
+  peekCStruct p = do
+    latencyModeEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ SwapchainLatencyCreateInfoNV
+             (bool32ToBool latencyModeEnable)
+
+instance Storable SwapchainLatencyCreateInfoNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SwapchainLatencyCreateInfoNV where
+  zero = SwapchainLatencyCreateInfoNV
+           zero
+
+
+-- | VkLatencySurfaceCapabilitiesNV - Structure describing surface optimized
+-- presentation modes for use with low latency mode
+--
+-- = Description
+--
+-- If @pPresentModes@ is @NULL@, then the number of present modes that are
+-- optimized for use with low latency mode returned in @presentModeCount@.
+-- Otherwise, @presentModeCount@ must be set by the user to the number of
+-- elements in the @pPresentModes@ array, and on return the variable is
+-- overwritten with the number of values actually written to
+-- @pPresentModes@. If the value of @presentModeCount@ is less than the
+-- number of optimized present modes, at most @presentModeCount@ values
+-- will be written to @pPresentModes@.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkLatencySurfaceCapabilitiesNV-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV'
+--
+-- -   #VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameter# If
+--     @presentModeCount@ is not @0@, and @pPresentModes@ is not @NULL@,
+--     @pPresentModes@ /must/ be a valid pointer to an array of
+--     @presentModeCount@ 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR'
+--     values
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data LatencySurfaceCapabilitiesNV = LatencySurfaceCapabilitiesNV
+  { -- | @presentModeCount@ is the number of presentation modes provided.
+    presentModeCount :: Word32
+  , -- | @pPresentModes@ is list of presentation modes optimized for use with low
+    -- latency mode with @presentModeCount@ entries.
+    presentModes :: Ptr PresentModeKHR
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LatencySurfaceCapabilitiesNV)
+#endif
+deriving instance Show LatencySurfaceCapabilitiesNV
+
+instance ToCStruct LatencySurfaceCapabilitiesNV where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LatencySurfaceCapabilitiesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (presentModeCount)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR))) (presentModes)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct LatencySurfaceCapabilitiesNV where
+  peekCStruct p = do
+    presentModeCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pPresentModes <- peek @(Ptr PresentModeKHR) ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR)))
+    pure $ LatencySurfaceCapabilitiesNV
+             presentModeCount pPresentModes
+
+instance Storable LatencySurfaceCapabilitiesNV where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero LatencySurfaceCapabilitiesNV where
+  zero = LatencySurfaceCapabilitiesNV
+           zero
+           zero
+
+
+-- | VkLatencyMarkerNV - Structure used to mark different points in latency
+--
+-- = Description
+--
+-- The members of the 'LatencyMarkerNV' are used as arguments for
+-- 'setLatencyMarkerNV' in the use cases described below:
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'SetLatencyMarkerInfoNV'
+newtype LatencyMarkerNV = LatencyMarkerNV Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'LATENCY_MARKER_SIMULATION_START_NV' /should/ be called at the start of
+-- the simulation execution each frame, but after the call to
+-- 'latencySleepNV'.
+pattern LATENCY_MARKER_SIMULATION_START_NV = LatencyMarkerNV 0
+
+-- | 'LATENCY_MARKER_SIMULATION_END_NV' /should/ be called at the end of the
+-- simulation execution each frame.
+pattern LATENCY_MARKER_SIMULATION_END_NV = LatencyMarkerNV 1
+
+-- | 'LATENCY_MARKER_RENDERSUBMIT_START_NV' /should/ be called at the
+-- beginning of the render submission execution each frame. This /should/
+-- be wherever Vulkan API calls are made and /must/ not span into
+-- asynchronous rendering.
+pattern LATENCY_MARKER_RENDERSUBMIT_START_NV = LatencyMarkerNV 2
+
+-- | 'LATENCY_MARKER_RENDERSUBMIT_END_NV' /should/ be called at the end of
+-- the render submission execution each frame.
+pattern LATENCY_MARKER_RENDERSUBMIT_END_NV = LatencyMarkerNV 3
+
+-- | 'LATENCY_MARKER_PRESENT_START_NV' /should/ be called just before
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'.
+pattern LATENCY_MARKER_PRESENT_START_NV = LatencyMarkerNV 4
+
+-- | 'LATENCY_MARKER_PRESENT_END_NV' /should/ be called when
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' returns.
+pattern LATENCY_MARKER_PRESENT_END_NV = LatencyMarkerNV 5
+
+-- | 'LATENCY_MARKER_INPUT_SAMPLE_NV' /should/ be called just before the
+-- application gathers input data.
+pattern LATENCY_MARKER_INPUT_SAMPLE_NV = LatencyMarkerNV 6
+
+-- | 'LATENCY_MARKER_TRIGGER_FLASH_NV' /should/ be called anywhere between
+-- 'LATENCY_MARKER_SIMULATION_START_NV' and
+-- 'LATENCY_MARKER_SIMULATION_END_NV' whenever a left mouse click occurs.
+pattern LATENCY_MARKER_TRIGGER_FLASH_NV = LatencyMarkerNV 7
+
+-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV"
+pattern LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = LatencyMarkerNV 8
+
+-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV"
+pattern LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = LatencyMarkerNV 9
+
+-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV"
+pattern LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = LatencyMarkerNV 10
+
+-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV"
+pattern LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = LatencyMarkerNV 11
+
+{-# COMPLETE
+  LATENCY_MARKER_SIMULATION_START_NV
+  , LATENCY_MARKER_SIMULATION_END_NV
+  , LATENCY_MARKER_RENDERSUBMIT_START_NV
+  , LATENCY_MARKER_RENDERSUBMIT_END_NV
+  , LATENCY_MARKER_PRESENT_START_NV
+  , LATENCY_MARKER_PRESENT_END_NV
+  , LATENCY_MARKER_INPUT_SAMPLE_NV
+  , LATENCY_MARKER_TRIGGER_FLASH_NV
+  , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV
+  , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV
+  , LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV
+  , LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV ::
+    LatencyMarkerNV
+  #-}
+
+conNameLatencyMarkerNV :: String
+conNameLatencyMarkerNV = "LatencyMarkerNV"
+
+enumPrefixLatencyMarkerNV :: String
+enumPrefixLatencyMarkerNV = "LATENCY_MARKER_"
+
+showTableLatencyMarkerNV :: [(LatencyMarkerNV, String)]
+showTableLatencyMarkerNV =
+  [
+    ( LATENCY_MARKER_SIMULATION_START_NV
+    , "SIMULATION_START_NV"
+    )
+  ,
+    ( LATENCY_MARKER_SIMULATION_END_NV
+    , "SIMULATION_END_NV"
+    )
+  ,
+    ( LATENCY_MARKER_RENDERSUBMIT_START_NV
+    , "RENDERSUBMIT_START_NV"
+    )
+  ,
+    ( LATENCY_MARKER_RENDERSUBMIT_END_NV
+    , "RENDERSUBMIT_END_NV"
+    )
+  ,
+    ( LATENCY_MARKER_PRESENT_START_NV
+    , "PRESENT_START_NV"
+    )
+  , (LATENCY_MARKER_PRESENT_END_NV, "PRESENT_END_NV")
+  , (LATENCY_MARKER_INPUT_SAMPLE_NV, "INPUT_SAMPLE_NV")
+  ,
+    ( LATENCY_MARKER_TRIGGER_FLASH_NV
+    , "TRIGGER_FLASH_NV"
+    )
+  ,
+    ( LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV
+    , "OUT_OF_BAND_RENDERSUBMIT_START_NV"
+    )
+  ,
+    ( LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV
+    , "OUT_OF_BAND_RENDERSUBMIT_END_NV"
+    )
+  ,
+    ( LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV
+    , "OUT_OF_BAND_PRESENT_START_NV"
+    )
+  ,
+    ( LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV
+    , "OUT_OF_BAND_PRESENT_END_NV"
+    )
+  ]
+
+instance Show LatencyMarkerNV where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixLatencyMarkerNV
+      showTableLatencyMarkerNV
+      conNameLatencyMarkerNV
+      (\(LatencyMarkerNV x) -> x)
+      (showsPrec 11)
+
+instance Read LatencyMarkerNV where
+  readPrec =
+    enumReadPrec
+      enumPrefixLatencyMarkerNV
+      showTableLatencyMarkerNV
+      conNameLatencyMarkerNV
+      LatencyMarkerNV
+
+-- | VkOutOfBandQueueTypeNV - Type of out of band queue
+--
+-- = Description
+--
+-- The members of the 'OutOfBandQueueTypeNV' are used to describe the queue
+-- type in 'OutOfBandQueueTypeInfoNV' as described below:
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,
+-- 'OutOfBandQueueTypeInfoNV'
+newtype OutOfBandQueueTypeNV = OutOfBandQueueTypeNV Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'OUT_OF_BAND_QUEUE_TYPE_RENDER_NV' indicates that work will be submitted
+-- to this queue.
+pattern OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = OutOfBandQueueTypeNV 0
+
+-- | 'OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV' indicates that this queue will be
+-- presented from.
+pattern OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = OutOfBandQueueTypeNV 1
+
+{-# COMPLETE
+  OUT_OF_BAND_QUEUE_TYPE_RENDER_NV
+  , OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV ::
+    OutOfBandQueueTypeNV
+  #-}
+
+conNameOutOfBandQueueTypeNV :: String
+conNameOutOfBandQueueTypeNV = "OutOfBandQueueTypeNV"
+
+enumPrefixOutOfBandQueueTypeNV :: String
+enumPrefixOutOfBandQueueTypeNV = "OUT_OF_BAND_QUEUE_TYPE_"
+
+showTableOutOfBandQueueTypeNV :: [(OutOfBandQueueTypeNV, String)]
+showTableOutOfBandQueueTypeNV =
+  [
+    ( OUT_OF_BAND_QUEUE_TYPE_RENDER_NV
+    , "RENDER_NV"
+    )
+  ,
+    ( OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV
+    , "PRESENT_NV"
+    )
+  ]
+
+instance Show OutOfBandQueueTypeNV where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixOutOfBandQueueTypeNV
+      showTableOutOfBandQueueTypeNV
+      conNameOutOfBandQueueTypeNV
+      (\(OutOfBandQueueTypeNV x) -> x)
+      (showsPrec 11)
+
+instance Read OutOfBandQueueTypeNV where
+  readPrec =
+    enumReadPrec
+      enumPrefixOutOfBandQueueTypeNV
+      showTableOutOfBandQueueTypeNV
+      conNameOutOfBandQueueTypeNV
+      OutOfBandQueueTypeNV
+
+type NV_LOW_LATENCY_2_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_LOW_LATENCY_2_SPEC_VERSION"
+pattern NV_LOW_LATENCY_2_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_LOW_LATENCY_2_SPEC_VERSION = 1
+
+
+type NV_LOW_LATENCY_2_EXTENSION_NAME = "VK_NV_low_latency2"
+
+-- No documentation found for TopLevel "VK_NV_LOW_LATENCY_2_EXTENSION_NAME"
+pattern NV_LOW_LATENCY_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_LOW_LATENCY_2_EXTENSION_NAME = "VK_NV_low_latency2"
+
diff --git a/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot b/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot
@@ -0,0 +1,247 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_low_latency2 - device extension
+--
+-- == VK_NV_low_latency2
+--
+-- [__Name String__]
+--     @VK_NV_low_latency2@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     506
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   Charles Hansen
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_low_latency2] @cshansen%0A*Here describe the issue or question you have about the VK_NV_low_latency2 extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-25
+--
+-- [__Contributors__]
+--
+--     -   Charles Hansen, NVIDIA
+--
+--     -   Liam Middlebrook, NVIDIA
+--
+--     -   Lionel Duc, NVIDIA
+--
+--     -   James Jones, NVIDIA
+--
+--     -   Eric Sullivan, NVIDIA
+--
+-- == New Commands
+--
+-- -   'getLatencyTimingsNV'
+--
+-- -   'latencySleepNV'
+--
+-- -   'queueNotifyOutOfBandNV'
+--
+-- -   'setLatencyMarkerNV'
+--
+-- -   'setLatencySleepModeNV'
+--
+-- == New Structures
+--
+-- -   'GetLatencyMarkerInfoNV'
+--
+-- -   'LatencySleepInfoNV'
+--
+-- -   'LatencySleepModeInfoNV'
+--
+-- -   'LatencyTimingsFrameReportNV'
+--
+-- -   'OutOfBandQueueTypeInfoNV'
+--
+-- -   'SetLatencyMarkerInfoNV'
+--
+-- -   Extending 'Vulkan.Core10.Queue.SubmitInfo',
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2':
+--
+--     -   'LatencySubmissionPresentIdNV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR':
+--
+--     -   'LatencySurfaceCapabilitiesNV'
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR':
+--
+--     -   'SwapchainLatencyCreateInfoNV'
+--
+-- == New Enums
+--
+-- -   'LatencyMarkerNV'
+--
+-- -   'OutOfBandQueueTypeNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_LOW_LATENCY_2_EXTENSION_NAME'
+--
+-- -   'NV_LOW_LATENCY_2_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV'
+--
+-- == Description
+--
+-- This extension gives applications timing suggestions on when to start
+-- the recording of new frames to reduce the latency between input sampling
+-- and frame presentation. Applications can accomplish this through the
+-- extension by calling 'setLatencySleepModeNV' to allow the driver to pace
+-- a given swapchain, then calling 'latencySleepNV' before input sampling
+-- to delay the start of the CPU side work. Additional methods and
+-- structures are provided to give insight into the latency pipeline of an
+-- application through the latency markers. @VK_NV_low_latency@ provides
+-- legacy support for applications that make use of the NVIDIA Reflex SDK
+-- whereas new implementations should use the @VK_NV_low_latency2@
+-- extension.
+--
+-- == Issues
+--
+-- 1) How does Low Latency 2 work with applications that utilize device
+-- groups?
+--
+-- Low Latency 2 does not support device groups.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-09-25 (Charles Hansen)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'GetLatencyMarkerInfoNV', 'LatencyMarkerNV', 'LatencySleepInfoNV',
+-- 'LatencySleepModeInfoNV', 'LatencySubmissionPresentIdNV',
+-- 'LatencySurfaceCapabilitiesNV', 'LatencyTimingsFrameReportNV',
+-- 'OutOfBandQueueTypeInfoNV', 'OutOfBandQueueTypeNV',
+-- 'SetLatencyMarkerInfoNV', 'SwapchainLatencyCreateInfoNV',
+-- 'getLatencyTimingsNV', 'latencySleepNV', 'queueNotifyOutOfBandNV',
+-- 'setLatencyMarkerNV', 'setLatencySleepModeNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_low_latency2 Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_low_latency2  ( GetLatencyMarkerInfoNV
+                                             , LatencySleepInfoNV
+                                             , LatencySleepModeInfoNV
+                                             , LatencySubmissionPresentIdNV
+                                             , LatencySurfaceCapabilitiesNV
+                                             , LatencyTimingsFrameReportNV
+                                             , OutOfBandQueueTypeInfoNV
+                                             , SetLatencyMarkerInfoNV
+                                             , SwapchainLatencyCreateInfoNV
+                                             ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data GetLatencyMarkerInfoNV
+
+instance ToCStruct GetLatencyMarkerInfoNV
+instance Show GetLatencyMarkerInfoNV
+
+instance FromCStruct GetLatencyMarkerInfoNV
+
+
+data LatencySleepInfoNV
+
+instance ToCStruct LatencySleepInfoNV
+instance Show LatencySleepInfoNV
+
+instance FromCStruct LatencySleepInfoNV
+
+
+data LatencySleepModeInfoNV
+
+instance ToCStruct LatencySleepModeInfoNV
+instance Show LatencySleepModeInfoNV
+
+instance FromCStruct LatencySleepModeInfoNV
+
+
+data LatencySubmissionPresentIdNV
+
+instance ToCStruct LatencySubmissionPresentIdNV
+instance Show LatencySubmissionPresentIdNV
+
+instance FromCStruct LatencySubmissionPresentIdNV
+
+
+data LatencySurfaceCapabilitiesNV
+
+instance ToCStruct LatencySurfaceCapabilitiesNV
+instance Show LatencySurfaceCapabilitiesNV
+
+instance FromCStruct LatencySurfaceCapabilitiesNV
+
+
+data LatencyTimingsFrameReportNV
+
+instance ToCStruct LatencyTimingsFrameReportNV
+instance Show LatencyTimingsFrameReportNV
+
+instance FromCStruct LatencyTimingsFrameReportNV
+
+
+data OutOfBandQueueTypeInfoNV
+
+instance ToCStruct OutOfBandQueueTypeInfoNV
+instance Show OutOfBandQueueTypeInfoNV
+
+instance FromCStruct OutOfBandQueueTypeInfoNV
+
+
+data SetLatencyMarkerInfoNV
+
+instance ToCStruct SetLatencyMarkerInfoNV
+instance Show SetLatencyMarkerInfoNV
+
+instance FromCStruct SetLatencyMarkerInfoNV
+
+
+data SwapchainLatencyCreateInfoNV
+
+instance ToCStruct SwapchainLatencyCreateInfoNV
+instance Show SwapchainLatencyCreateInfoNV
+
+instance FromCStruct SwapchainLatencyCreateInfoNV
+
diff --git a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs
--- a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs
+++ b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
--- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
+++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
@@ -17,8810 +17,10637 @@
 -- [__Revision__]
 --     1
 --
--- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
---
--- [__Contact__]
---
---     -   Christoph Kubisch
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_mesh_shader] @pixeljetstream%0A*Here describe the issue or question you have about the VK_NV_mesh_shader extension* >
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2018-07-19
---
--- [__Interactions and External Dependencies__]
---
---     -   This extension requires
---         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
---
---     -   This extension provides API support for
---         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_mesh_shader.txt GLSL_NV_mesh_shader>
---
--- [__Contributors__]
---
---     -   Pat Brown, NVIDIA
---
---     -   Jeff Bolz, NVIDIA
---
---     -   Daniel Koch, NVIDIA
---
---     -   Piers Daniell, NVIDIA
---
---     -   Pierre Boudier, NVIDIA
---
--- == Description
---
--- This extension provides a new mechanism allowing applications to
--- generate collections of geometric primitives via programmable mesh
--- shading. It is an alternative to the existing programmable primitive
--- shading pipeline, which relied on generating input primitives by a fixed
--- function assembler as well as fixed function vertex fetch.
---
--- There are new programmable shader types — the task and mesh shader — to
--- generate these collections to be processed by fixed-function primitive
--- assembly and rasterization logic. When task and mesh shaders are
--- dispatched, they replace the core
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization stages>,
--- including vertex array attribute fetching, vertex shader processing,
--- tessellation, and geometry shader processing.
---
--- This extension also adds support for the following SPIR-V extension in
--- Vulkan:
---
--- -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
---
--- == New Commands
---
--- -   'cmdDrawMeshTasksIndirectCountNV'
---
--- -   'cmdDrawMeshTasksIndirectNV'
---
--- -   'cmdDrawMeshTasksNV'
---
--- == New Structures
---
--- -   'DrawMeshTasksIndirectCommandNV'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
---     'Vulkan.Core10.Device.DeviceCreateInfo':
---
---     -   'PhysicalDeviceMeshShaderFeaturesNV'
---
--- -   Extending
---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
---
---     -   'PhysicalDeviceMeshShaderPropertiesNV'
---
--- == New Enum Constants
---
--- -   'NV_MESH_SHADER_EXTENSION_NAME'
---
--- -   'NV_MESH_SHADER_SPEC_VERSION'
---
--- -   Extending
---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
---
---     -   'PIPELINE_STAGE_MESH_SHADER_BIT_NV'
---
---     -   'PIPELINE_STAGE_TASK_SHADER_BIT_NV'
---
--- -   Extending
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':
---
---     -   'SHADER_STAGE_MESH_BIT_NV'
---
---     -   'SHADER_STAGE_TASK_BIT_NV'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV'
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV'
---
--- == New or Modified Built-In Variables
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV>
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>
---
--- -   (modified)@Position@
---
--- -   (modified)@PointSize@
---
--- -   (modified)@ClipDistance@
---
--- -   (modified)@CullDistance@
---
--- -   (modified)@PrimitiveId@
---
--- -   (modified)@Layer@
---
--- -   (modified)@ViewportIndex@
---
--- -   (modified)@WorkgroupSize@
---
--- -   (modified)@WorkgroupId@
---
--- -   (modified)@LocalInvocationId@
---
--- -   (modified)@GlobalInvocationId@
---
--- -   (modified)@LocalInvocationIndex@
---
--- -   (modified)@DrawIndex@
---
--- -   (modified)@ViewportMaskNV@
---
--- -   (modified)@PositionPerViewNV@
---
--- -   (modified)@ViewportMaskPerViewNV@
---
--- == New SPIR-V Capability
---
--- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>
---
--- == Issues
---
--- 1.  How to name this extension?
---
---     __RESOLVED__: VK_NV_mesh_shader
---
---     Other options considered:
---
---     -   VK_NV_mesh_shading
---
---     -   VK_NV_programmable_mesh_shading
---
---     -   VK_NV_primitive_group_shading
---
---     -   VK_NV_grouped_drawing
---
--- 2.  Do we need a new VkPrimitiveTopology?
---
---     __RESOLVED__: No. We skip the InputAssembler stage.
---
--- 3.  Should we allow Instancing?
---
---     __RESOLVED__: No. There is no fixed function input, other than the
---     IDs. However, allow offsetting with a “first” value.
---
--- 4.  Should we use existing vkCmdDraw or introduce new functions?
---
---     __RESOLVED__: Introduce new functions.
---
---     New functions make it easier to separate from “programmable
---     primitive shading” chapter, less “dual use” language about existing
---     functions having alternative behavior. The text around the existing
---     “draws” is heavily based around emitting vertices.
---
--- 5.  If new functions, how to name?
---
---     __RESOLVED__: CmdDrawMeshTasks*
---
---     Other options considered:
---
---     -   CmdDrawMeshed
---
---     -   CmdDrawTasked
---
---     -   CmdDrawGrouped
---
--- 6.  Should VK_SHADER_STAGE_ALL_GRAPHICS be updated to include the new
---     stages?
---
---     __RESOLVED__: No. If an application were to be recompiled with
---     headers that include additional shader stage bits in
---     VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application
---     would no longer be valid on implementations that do not support mesh
---     or task shaders. This means the change would not be backwards
---     compatible. It is too bad VkShaderStageFlagBits does not have a
---     dedicated “all supported graphics stages” bit like
---     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this
---     problem.
---
--- == Version History
---
--- -   Revision 1, 2018-07-19 (Christoph Kubisch, Daniel Koch)
---
---     -   Internal revisions
---
--- == See Also
---
--- 'DrawMeshTasksIndirectCommandNV', 'PhysicalDeviceMeshShaderFeaturesNV',
--- 'PhysicalDeviceMeshShaderPropertiesNV',
--- 'cmdDrawMeshTasksIndirectCountNV', 'cmdDrawMeshTasksIndirectNV',
--- 'cmdDrawMeshTasksNV'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_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_NV_mesh_shader  ( cmdDrawMeshTasksNV
-                                            , cmdDrawMeshTasksIndirectNV
-                                            , cmdDrawMeshTasksIndirectCountNV
-                                            , pattern SHADER_STAGE_TASK_BIT_NV
-                                            , pattern SHADER_STAGE_MESH_BIT_NV
-                                            , pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV
-                                            , pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV
-                                            , PhysicalDeviceMeshShaderFeaturesNV(..)
-                                            , PhysicalDeviceMeshShaderPropertiesNV(..)
-                                            , DrawMeshTasksIndirectCommandNV(..)
-                                            , NV_MESH_SHADER_SPEC_VERSION
-                                            , pattern NV_MESH_SHADER_SPEC_VERSION
-                                            , NV_MESH_SHADER_EXTENSION_NAME
-                                            , pattern NV_MESH_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(pVkCmdDrawMeshTasksIndirectCountNV))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectNV))
-import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksNV))
-import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_MESH_SHADER_BIT_EXT))
-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_TASK_SHADER_BIT_EXT))
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(SHADER_STAGE_MESH_BIT_EXT))
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(SHADER_STAGE_TASK_BIT_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMeshTasksNV
-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMeshTasksNV - Draw mesh task work items
---
--- = Description
---
--- When the command is executed, a global workgroup consisting of
--- @taskCount@ local workgroups is assembled.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08601# For each push constant that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksNV-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08608# If a pipeline is bound to the
---     pipeline bind point used by this command, 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-vkCmdDrawMeshTasksNV-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksNV-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksNV-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMeshTasksNV-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksNV-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07748# If any shader statically
---     accesses an input attachment, a valid descriptor /must/ be bound to
---     the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08617# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08618# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08619# If a shader object that
---     outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08620# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08621# If a shader object is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08622# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08623# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08624# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08625# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08626# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08627# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08628# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08629# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08630# If a shader object is bound
---     to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08631# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08632# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08633# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08634# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08635# If a shader object is bound
---     to any graphics stage, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08636# If a shader object is bound
---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08637# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08638# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08639# If a shader object is bound
---     to any graphics stage, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08640# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08641# If a shader object is bound
---     to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08643# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08644# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksNV-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksNV-pNext-07935# If this command has been
---     called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08651# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08652# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08653# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08654# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08657# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08658# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08659# If a shader object is bound
---     to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08684# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08685# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08686# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08687# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08688# If there is no bound graphics
---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
---     /must/ have been called on the current command buffer with @pStages@
---     with an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08689# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08690# If there is no bound graphics
---     pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08693# If there is no bound graphics
---     pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08694# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08695# If there is no bound graphics
---     pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08696# If there is no bound graphics
---     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08698# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08699# If any graphics shader is
---     bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08716# If the bound
---     graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be
---     less than or equal to
---     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@
---
--- -   #VUID-vkCmdDrawMeshTasksNV-MeshNV-07080# The current pipeline bound
---     to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     /must/ contain a shader stage using the @MeshNV@ @Execution@ @Model@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter# @commandBuffer@
---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMeshTasksNV-renderpass# This command /must/ only be
---     called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksNV-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_NV_mesh_shader VK_NV_mesh_shader>,
--- 'Vulkan.Core10.Handles.CommandBuffer'
-cmdDrawMeshTasksNV :: forall io
-                    . (MonadIO io)
-                   => -- | @commandBuffer@ is the command buffer into which the command will be
-                      -- recorded.
-                      CommandBuffer
-                   -> -- | @taskCount@ is the number of local workgroups to dispatch in the X
-                      -- dimension. Y and Z dimension are implicitly set to one.
-                      ("taskCount" ::: Word32)
-                   -> -- | @firstTask@ is the X component of the first workgroup ID.
-                      ("firstTask" ::: Word32)
-                   -> io ()
-cmdDrawMeshTasksNV commandBuffer taskCount firstTask = liftIO $ do
-  let vkCmdDrawMeshTasksNVPtr = pVkCmdDrawMeshTasksNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawMeshTasksNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksNV is null" Nothing Nothing
-  let vkCmdDrawMeshTasksNV' = mkVkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNVPtr
-  traceAroundEvent "vkCmdDrawMeshTasksNV" (vkCmdDrawMeshTasksNV'
-                                             (commandBufferHandle (commandBuffer))
-                                             (taskCount)
-                                             (firstTask))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMeshTasksIndirectNV
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMeshTasksIndirectNV - Issue an indirect mesh tasks draw into a
--- command buffer
---
--- = Description
---
--- 'cmdDrawMeshTasksIndirectNV' behaves similarly to 'cmdDrawMeshTasksNV'
--- except that the parameters are read by the device from a buffer during
--- execution. @drawCount@ draws are executed by the command, with
--- parameters taken from @buffer@ starting at @offset@ and increasing by
--- @stride@ bytes for each successive draw. The parameters of each draw are
--- encoded in an array of 'DrawMeshTasksIndirectCommandNV' structures. If
--- @drawCount@ is less than or equal to one, @stride@ is ignored.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08600# For each set /n/ that
---     is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08604# Descriptors in bound
---     descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08605# If a descriptor is
---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08608# If a pipeline is
---     bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectNV-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectNV-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectNV-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMeshTasksIndirectNV-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectNV-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07831# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07832# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07833# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08617# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08618# If a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08619# If a shader object
---     that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07834# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08620# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07835# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08621# If a shader object is
---     bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07836# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08622# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07837# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08623# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07838# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08624# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07839# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08625# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08626# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07840# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08627# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07841# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08628# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07843# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08629# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07844# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08630# If a shader object is
---     bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07845# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08631# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07846# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08632# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07847# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08633# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07848# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08634# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08635# If a shader object is
---     bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08636# If a shader object is
---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
---     extension is enabled on the device, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08637# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07878# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07879# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08638# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08639# If a shader object is
---     bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08640# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08641# If a shader object is
---     bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08643# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08644# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07880# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07881# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectNV-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectNV-pNext-07935# If this command has
---     been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08651# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08652# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08653# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08654# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08657# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08658# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08659# If a shader object is
---     bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07849# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07850# If dynamic state was
---     inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08684# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08685# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08686# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08687# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08688# If there is no bound
---     graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08689# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08690# If there is no bound
---     graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08693# If there is no bound
---     graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08694# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08695# If there is no bound
---     graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08696# If there is no bound
---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08716# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is
---     non-sparse then it /must/ be bound completely and contiguously to a
---     single 'Vulkan.Core10.Handles.DeviceMemory' object
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709# @buffer@ /must/
---     have been created with the
---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
---     bit set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710# @offset@ /must/ be
---     a multiple of @4@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711#
---     @commandBuffer@ /must/ not be a protected command buffer
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-drawCount-02719# @drawCount@
---     /must/ be less than or equal to
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146# If @drawCount@
---     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/
---     be greater than or equal to
---     @sizeof@('DrawMeshTasksIndirectCommandNV')
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156# If @drawCount@
---     is equal to @1@, (@offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157# If @drawCount@
---     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
---     equal to the size of @buffer@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081# The current
---     pipeline bound to
---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
---     /must/ contain a shader stage using the @MeshNV@ @Execution@ @Model@
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter#
---     @commandBuffer@ /must/ be a valid
---     'Vulkan.Core10.Handles.CommandBuffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter# @buffer@ /must/
---     be a valid 'Vulkan.Core10.Handles.Buffer' handle
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool# The
---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics operations
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-renderpass# This command /must/
---     only be called inside of a render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-videocoding# This command /must/
---     only be called outside of a video coding scope
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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_NV_mesh_shader VK_NV_mesh_shader>,
--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
-cmdDrawMeshTasksIndirectNV :: 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)
-                           -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
-                              ("drawCount" ::: Word32)
-                           -> -- | @stride@ is the byte stride between successive sets of draw parameters.
-                              ("stride" ::: Word32)
-                           -> io ()
-cmdDrawMeshTasksIndirectNV commandBuffer
-                             buffer
-                             offset
-                             drawCount
-                             stride = liftIO $ do
-  let vkCmdDrawMeshTasksIndirectNVPtr = pVkCmdDrawMeshTasksIndirectNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
-  unless (vkCmdDrawMeshTasksIndirectNVPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectNV is null" Nothing Nothing
-  let vkCmdDrawMeshTasksIndirectNV' = mkVkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNVPtr
-  traceAroundEvent "vkCmdDrawMeshTasksIndirectNV" (vkCmdDrawMeshTasksIndirectNV'
-                                                     (commandBufferHandle (commandBuffer))
-                                                     (buffer)
-                                                     (offset)
-                                                     (drawCount)
-                                                     (stride))
-  pure $ ()
-
-
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkCmdDrawMeshTasksIndirectCountNV
-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
-
--- | vkCmdDrawMeshTasksIndirectCountNV - Perform an indirect mesh tasks draw
--- with the draw count sourced from a buffer
---
--- = Description
---
--- 'cmdDrawMeshTasksIndirectCountNV' behaves similarly to
--- 'cmdDrawMeshTasksIndirectNV' except that the draw count is read by the
--- device from a buffer during execution. The command will read an unsigned
--- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use
--- this as the draw count.
---
--- == Valid Usage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07888# If a
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
---     descriptor is accessed using atomic operations as a result of this
---     command, then the storage texel buffer’s
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
---     /must/ contain
---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08600# For each set /n/
---     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'
---     bound to the pipeline bind point used by this command, or by any of
---     the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601# For each push
---     constant that is statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08604# Descriptors in
---     bound descriptor buffers, specified via
---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
---     /must/ be valid if they are dynamically used by any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08605# If a descriptor
---     is dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
---     created with
---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
---     the descriptor memory /must/ be resident
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     feature is not enabled, a valid pipeline /must/ be bound to the
---     pipeline bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608# If a pipeline is
---     bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectCountNV-None-08609# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountNV-None-08610# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountNV-None-08611# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08612# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a uniform
---     buffer, it /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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08613# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
---     feature is not enabled, and any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a storage
---     buffer, it /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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-08614# 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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07748# If any shader
---     statically accesses an input attachment, a valid descriptor /must/
---     be bound to the pipeline via a descriptor set
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07831# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
---     called in the current command buffer prior to this drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618# If a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619# If a shader
---     object that outputs line primitives is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---     or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
---     state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
---     in the current command buffer set @depthBiasEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621# If a shader
---     object is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer set any element of
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
---     the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     in the current command buffer set the same element of
---     @pColorBlendEquations@ to an
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
---     member with a value of
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     in the current command buffer set @depthBoundsTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
---     been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08624# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
---     dynamic state enabled then
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08625# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
---     have been called in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08626# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     in the current command buffer set @sampleLocationsEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630# If a shader
---     object is bound to any graphics stage,
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
---     in the current command buffer set @depthTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE',
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632# If a shader
---     object is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
---     feature is enabled, the
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
---     dynamic state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08633# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
---     state enabled then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08634# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
---     in the current command buffer set @stencilTestEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08635# If a shader
---     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08636# If a shader
---     object is bound to any graphics stage, and the
---     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,
---     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08637# If a shader
---     object is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07878# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
---     in the current command buffer set any element of
---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
---     then
---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08639# If a shader
---     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08640# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08641# If a shader
---     object is bound to any graphics stage, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled on the device, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
---     If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
---     limit is not supported, and any shader object bound to a graphics
---     stage writes 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08643# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
---     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
---     recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     in the current command buffer that affected that attachment index
---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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 is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     in the current command buffer /must/ have set @rasterizationSamples@
---     to be the same as the number of samples for the current render pass
---     color and\/or depth\/stencil attachments
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08646# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08647# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
---     feature is enabled on the device, and a shader object is bound to
---     the fragment stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
---     parameter of most recent call to
---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
---     in the current command buffer /must/ be greater than or equal to the
---     number of color attachments in the current render pass instance
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07880# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08648# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08649# If the
---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
---     in the current command buffer set @discardRectangleEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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 @rasterizationSamples@ for
---     the currently bound graphics pipeline
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountNV-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
---     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935# If this command
---     has been called inside a render pass instance started with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     and the @pNext@ chain of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
---     includes a
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
---     structure with @multisampledRenderToSingleSampledEnable@ equal to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
---     @rasterizationSamples@ for the currently bound graphics pipeline
---     /must/ be equal to
---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08650# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08651# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08652# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08653# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08654# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08655# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08656# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08657# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08658# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
---     for any attachment set that attachment’s value in
---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08659# If a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08660# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
---     feature is enabled, and a shader object is bound to the geometry
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08661# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08662# If the
---     @VK_EXT_conservative_rasterization@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
---     in the current command buffer set @conservativeRasterizationMode@ to
---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
---     then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08663# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08664# If the
---     @VK_EXT_sample_locations@ extension is enabled, and a shader object
---     is bound to any graphics stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
---     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08665# If the
---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
---     is bound to the vertex stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08666# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08669# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
---     in the current command buffer set @polygonMode@ to
---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to the vertex stage, and the most recent call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
---     in the current command buffer set @primitiveTopology@ to any line
---     topology, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object that outputs line primitives is bound to the tessellation
---     evaluation or geometry stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
---     dynamic state enabled then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672# If the
---     @VK_EXT_line_rasterization@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
---     in the current command buffer set @stippledLineEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08673# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
---     /must/ have been called in the current command buffer prior to this
---     drawing command ifdef::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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 endif::VK_EXT_extended_dynamic_state3
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08674# If the
---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08675# If the
---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
---     is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08676# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08677# If the
---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
---     shader object is bound to any graphics stage, and the most recent
---     call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
---     in the current command buffer set @coverageToColorEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08678# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08679# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08680# If the
---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
---     object is bound to any graphics stage, and the most recent call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
---     in the current command buffer set @coverageModulationTableEnable@ to
---     'Vulkan.Core10.FundamentalTypes.TRUE', then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08681# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08682# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08683# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
---     feature is enabled, and a shader object is bound to any graphics
---     stage, then
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
---     /must/ have been called in the current command buffer prior to this
---     drawing command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then,
---     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
---     @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state disabled and the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
---     state enabled, the @sampleLocationsEnable@ member of a
---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
---     in the bound graphics pipeline is
---     'Vulkan.Core10.FundamentalTypes.TRUE' or
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
---     /must/ equal @rasterizationSamples@ in the last call to
---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07850# If dynamic state
---     was inherited from
---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
---     it /must/ be set in the current command buffer prior to this drawing
---     command
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08685# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08686# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08687# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08688# If there is no
---     bound graphics pipeline,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08689# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08690# If there is no
---     bound graphics pipeline, and the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     feature is enabled,
---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
---     have been called on the current command buffer with @pStages@ with
---     an element of
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08693# If there is no
---     bound graphics pipeline, and at least one of the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features is enabled, one of the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound, and the other must have no
---     'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     without the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08695# If there is no
---     bound graphics pipeline, and both the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
---     and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
---     features are enabled, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
---     with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
---     to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696# If there is no
---     bound graphics pipeline, and a valid
---     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
---     bound to either the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
---     stage or the
---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
---     stage
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, then all shaders created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag in the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ also be bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699# If any graphics
---     shader is bound which was created with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag, any stages in between stages whose shaders which did not
---     create a shader with the
---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
---     flag as part of the same
---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
---     parameter in the last call to
---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
---
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08716# If the
---     bound graphics pipeline state includes a fragment shader stage, was
---     created with
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
---     set in
---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
---     and the fragment shader declares the @EarlyFragmentTests@ execution
---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
---     parameter in the last call to
---     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
---     be @0@
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--
+-- [__Contact__]
+--
+--     -   Christoph Kubisch
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_mesh_shader] @pixeljetstream%0A*Here describe the issue or question you have about the VK_NV_mesh_shader extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2018-07-19
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_mesh_shader.txt GLSL_NV_mesh_shader>
+--
+-- [__Contributors__]
+--
+--     -   Pat Brown, NVIDIA
+--
+--     -   Jeff Bolz, NVIDIA
+--
+--     -   Daniel Koch, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Pierre Boudier, NVIDIA
+--
+-- == Description
+--
+-- This extension provides a new mechanism allowing applications to
+-- generate collections of geometric primitives via programmable mesh
+-- shading. It is an alternative to the existing programmable primitive
+-- shading pipeline, which relied on generating input primitives by a fixed
+-- function assembler as well as fixed function vertex fetch.
+--
+-- There are new programmable shader types — the task and mesh shader — to
+-- generate these collections to be processed by fixed-function primitive
+-- assembly and rasterization logic. When task and mesh shaders are
+-- dispatched, they replace the core
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization stages>,
+-- including vertex array attribute fetching, vertex shader processing,
+-- tessellation, and geometry shader processing.
+--
+-- This extension also adds support for the following SPIR-V extension in
+-- Vulkan:
+--
+-- -   <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_mesh_shader.html SPV_NV_mesh_shader>
+--
+-- == New Commands
+--
+-- -   'cmdDrawMeshTasksIndirectCountNV'
+--
+-- -   'cmdDrawMeshTasksIndirectNV'
+--
+-- -   'cmdDrawMeshTasksNV'
+--
+-- == New Structures
+--
+-- -   'DrawMeshTasksIndirectCommandNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceMeshShaderFeaturesNV'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceMeshShaderPropertiesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_MESH_SHADER_EXTENSION_NAME'
+--
+-- -   'NV_MESH_SHADER_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':
+--
+--     -   'PIPELINE_STAGE_MESH_SHADER_BIT_NV'
+--
+--     -   'PIPELINE_STAGE_TASK_SHADER_BIT_NV'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':
+--
+--     -   'SHADER_STAGE_MESH_BIT_NV'
+--
+--     -   'SHADER_STAGE_TASK_BIT_NV'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV'
+--
+-- == New or Modified Built-In Variables
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV>
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>
+--
+-- -   (modified)@Position@
+--
+-- -   (modified)@PointSize@
+--
+-- -   (modified)@ClipDistance@
+--
+-- -   (modified)@CullDistance@
+--
+-- -   (modified)@PrimitiveId@
+--
+-- -   (modified)@Layer@
+--
+-- -   (modified)@ViewportIndex@
+--
+-- -   (modified)@WorkgroupSize@
+--
+-- -   (modified)@WorkgroupId@
+--
+-- -   (modified)@LocalInvocationId@
+--
+-- -   (modified)@GlobalInvocationId@
+--
+-- -   (modified)@LocalInvocationIndex@
+--
+-- -   (modified)@DrawIndex@
+--
+-- -   (modified)@ViewportMaskNV@
+--
+-- -   (modified)@PositionPerViewNV@
+--
+-- -   (modified)@ViewportMaskPerViewNV@
+--
+-- == New SPIR-V Capability
+--
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>
+--
+-- == Issues
+--
+-- 1.  How to name this extension?
+--
+--     __RESOLVED__: VK_NV_mesh_shader
+--
+--     Other options considered:
+--
+--     -   VK_NV_mesh_shading
+--
+--     -   VK_NV_programmable_mesh_shading
+--
+--     -   VK_NV_primitive_group_shading
+--
+--     -   VK_NV_grouped_drawing
+--
+-- 2.  Do we need a new VkPrimitiveTopology?
+--
+--     __RESOLVED__: No. We skip the InputAssembler stage.
+--
+-- 3.  Should we allow Instancing?
+--
+--     __RESOLVED__: No. There is no fixed function input, other than the
+--     IDs. However, allow offsetting with a “first” value.
+--
+-- 4.  Should we use existing vkCmdDraw or introduce new functions?
+--
+--     __RESOLVED__: Introduce new functions.
+--
+--     New functions make it easier to separate from “programmable
+--     primitive shading” chapter, less “dual use” language about existing
+--     functions having alternative behavior. The text around the existing
+--     “draws” is heavily based around emitting vertices.
+--
+-- 5.  If new functions, how to name?
+--
+--     __RESOLVED__: CmdDrawMeshTasks*
+--
+--     Other options considered:
+--
+--     -   CmdDrawMeshed
+--
+--     -   CmdDrawTasked
+--
+--     -   CmdDrawGrouped
+--
+-- 6.  Should VK_SHADER_STAGE_ALL_GRAPHICS be updated to include the new
+--     stages?
+--
+--     __RESOLVED__: No. If an application were to be recompiled with
+--     headers that include additional shader stage bits in
+--     VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application
+--     would no longer be valid on implementations that do not support mesh
+--     or task shaders. This means the change would not be backwards
+--     compatible. It is too bad VkShaderStageFlagBits does not have a
+--     dedicated “all supported graphics stages” bit like
+--     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this
+--     problem.
+--
+-- == Version History
+--
+-- -   Revision 1, 2018-07-19 (Christoph Kubisch, Daniel Koch)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- 'DrawMeshTasksIndirectCommandNV', 'PhysicalDeviceMeshShaderFeaturesNV',
+-- 'PhysicalDeviceMeshShaderPropertiesNV',
+-- 'cmdDrawMeshTasksIndirectCountNV', 'cmdDrawMeshTasksIndirectNV',
+-- 'cmdDrawMeshTasksNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_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_NV_mesh_shader  ( cmdDrawMeshTasksNV
+                                            , cmdDrawMeshTasksIndirectNV
+                                            , cmdDrawMeshTasksIndirectCountNV
+                                            , pattern SHADER_STAGE_TASK_BIT_NV
+                                            , pattern SHADER_STAGE_MESH_BIT_NV
+                                            , pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV
+                                            , pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV
+                                            , PhysicalDeviceMeshShaderFeaturesNV(..)
+                                            , PhysicalDeviceMeshShaderPropertiesNV(..)
+                                            , DrawMeshTasksIndirectCommandNV(..)
+                                            , NV_MESH_SHADER_SPEC_VERSION
+                                            , pattern NV_MESH_SHADER_SPEC_VERSION
+                                            , NV_MESH_SHADER_EXTENSION_NAME
+                                            , pattern NV_MESH_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(pVkCmdDrawMeshTasksIndirectCountNV))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectNV))
+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksNV))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_MESH_SHADER_BIT_EXT))
+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_TASK_SHADER_BIT_EXT))
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(SHADER_STAGE_MESH_BIT_EXT))
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(SHADER_STAGE_TASK_BIT_EXT))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMeshTasksNV
+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMeshTasksNV - Draw mesh task work items
+--
+-- = Description
+--
+-- When the command is executed, a global workgroup consisting of
+-- @taskCount@ local workgroups is assembled.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08600# For each set /n/ that is
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08601# For each push constant that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08608# If a pipeline is bound to the
+--     pipeline bind point used by this command, 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-vkCmdDrawMeshTasksNV-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksNV-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksNV-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMeshTasksNV-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksNV-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMeshTasksNV-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977# If
+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978# If any
+--     command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07748# If any shader statically
+--     accesses an input attachment, a valid descriptor /must/ be bound to
+--     the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-09000# If a color attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09001# If a depth attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09002# If a stencil attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09003# If an attachment is written
+--     by any prior command in this subpass or by the load, store, or
+--     resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06539# If any previously recorded
+--     command in the current subpass accessed an image subresource used as
+--     an attachment in this subpass in any way other than as an
+--     attachment, this command /must/ not write to that image subresource
+--     as an attachment
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08617# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08618# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08619# If a shader object that
+--     outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08620# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08621# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08622# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08623# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08624# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08625# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08626# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934# If the
+--     bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08627# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08628# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08629# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08630# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08631# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08632# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08633# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08634# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08635# If a shader object is bound
+--     to any graphics stage, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-09232# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08636# If a shader object is bound
+--     to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08637# If a shader object is bound
+--     to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08638# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08639# If a shader object is bound
+--     to any graphics stage, 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08640# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08641# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08643# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08644# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08876# If a shader object is bound
+--     to any graphics stage, the current render pass instance /must/ have
+--     been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362# If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09363# If there is no shader object
+--     bound to any graphics stage, the current render pass instance was
+--     begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09364# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09365# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09366# If there is a shader object
+--     bound to any graphics stage, and the current render pass includes a
+--     color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09368# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09369# If the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09236# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksNV-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksNV-pNext-07935# If this command has been
+--     called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-pColorAttachments-08963# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-08964# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-08965# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-09237# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08651# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08652# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08653# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08919# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08654# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08920# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08657# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08658# If a shader object is bound
+--     to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08659# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-pipelineFragmentShadingRate-09238# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-rasterizationSamples-07474# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMeshTasksNV-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08684# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08685# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08686# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08687# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08688# If there is no bound graphics
+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'
+--     /must/ have been called in the current command buffer with @pStages@
+--     with an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08689# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08690# If there is no bound graphics
+--     pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08693# If there is no bound graphics
+--     pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08694# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08695# If there is no bound graphics
+--     pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08696# If there is no bound graphics
+--     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08698# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08699# If any graphics shader is
+--     bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08878# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08879# All bound graphics shader
+--     objects /must/ have been created with identical or identically
+--     defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08880# If a shader object is bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08716# If the bound
+--     graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-09116# If a shader object is bound
+--     to any graphics stage or the currently bound graphics pipeline was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-maxFragmentDualSrcAttachments-09239# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be
+--     less than or equal to
+--     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-MeshNV-07080# The current pipeline bound
+--     to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     /must/ contain a shader stage using the @MeshNV@ @Execution@ @Model@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter# @commandBuffer@
+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-renderpass# This command /must/ only be
+--     called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksNV-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_NV_mesh_shader VK_NV_mesh_shader>,
+-- 'Vulkan.Core10.Handles.CommandBuffer'
+cmdDrawMeshTasksNV :: forall io
+                    . (MonadIO io)
+                   => -- | @commandBuffer@ is the command buffer into which the command will be
+                      -- recorded.
+                      CommandBuffer
+                   -> -- | @taskCount@ is the number of local workgroups to dispatch in the X
+                      -- dimension. Y and Z dimension are implicitly set to one.
+                      ("taskCount" ::: Word32)
+                   -> -- | @firstTask@ is the X component of the first workgroup ID.
+                      ("firstTask" ::: Word32)
+                   -> io ()
+cmdDrawMeshTasksNV commandBuffer taskCount firstTask = liftIO $ do
+  let vkCmdDrawMeshTasksNVPtr = pVkCmdDrawMeshTasksNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawMeshTasksNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksNV is null" Nothing Nothing
+  let vkCmdDrawMeshTasksNV' = mkVkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNVPtr
+  traceAroundEvent "vkCmdDrawMeshTasksNV" (vkCmdDrawMeshTasksNV'
+                                             (commandBufferHandle (commandBuffer))
+                                             (taskCount)
+                                             (firstTask))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMeshTasksIndirectNV
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMeshTasksIndirectNV - Issue an indirect mesh tasks draw into a
+-- command buffer
+--
+-- = Description
+--
+-- 'cmdDrawMeshTasksIndirectNV' behaves similarly to 'cmdDrawMeshTasksNV'
+-- except that the parameters are read by the device from a buffer during
+-- execution. @drawCount@ draws are executed by the command, with
+-- parameters taken from @buffer@ starting at @offset@ and increasing by
+-- @stride@ bytes for each successive draw. The parameters of each draw are
+-- encoded in an array of 'DrawMeshTasksIndirectCommandNV' structures. If
+-- @drawCount@ is less than or equal to one, @stride@ is ignored.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-selectableCubicWeights-09214# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08600# For each set /n/ that
+--     is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08604# Descriptors in bound
+--     descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08605# If a descriptor is
+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectNV-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectNV-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectNV-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectNV-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09215# If
+--     a @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09216# If
+--     a @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09217# If
+--     a @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-09000# If a color attachment
+--     is written by any prior command in this subpass or by the load,
+--     store, or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09001# If a depth attachment
+--     is written by any prior command in this subpass or by the load,
+--     store, or resolve operations for this subpass, it is not in the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09003# If an attachment is
+--     written by any prior command in this subpass or by the load, store,
+--     or resolve operations for this subpass, it /must/ not be accessed in
+--     any way other than as an attachment, storage image, or sampled image
+--     by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06539# If any previously
+--     recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07831# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07832# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07833# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08617# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08618# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08619# If a shader object
+--     that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07834# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08620# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07835# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08621# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07836# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08622# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07837# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08623# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07838# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08624# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07839# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08625# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08626# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07840# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08627# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07841# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08628# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07843# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08629# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07844# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08630# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07845# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08631# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07846# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08632# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07847# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08633# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07848# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08634# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08635# If a shader object is
+--     bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-09232# If a shader object is
+--     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08636# If a shader object is
+--     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@
+--     extension is enabled on the device, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08637# If a shader object is
+--     bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07878# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07879# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08638# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08639# If a shader object is
+--     bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08640# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08641# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08643# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08644# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08876# If a shader object is
+--     bound to any graphics stage, the current render pass instance /must/
+--     have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362# If
+--     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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09363# If there is no shader
+--     object bound to any graphics stage, the current render pass instance
+--     was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09364# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09365# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09366# If there is a shader
+--     object bound to any graphics stage, and the current render pass
+--     includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-09367# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09368# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09369# If the current render
+--     pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371# If there is
+--     a shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-07880# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09236# If
+--     the @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07881# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectNV-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectNV-pNext-07935# If this command has
+--     been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-08964# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-08965# If the
+--     current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-09237# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08651# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08652# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08653# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08919# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08654# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08920# If a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08657# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08658# If a shader object is
+--     bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08659# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07849# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07474# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMeshTasksIndirectNV-None-09211# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938# If
+--     the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-08877# If the bound graphics
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07850# If dynamic state was
+--     inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08684# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08685# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08686# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08687# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08688# If there is no bound
+--     graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08689# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08690# If there is no bound
+--     graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08693# If there is no bound
+--     graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08694# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08695# If there is no bound
+--     graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08696# If there is no bound
+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08878# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08879# All bound graphics
+--     shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09372# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08880# If a shader object is
+--     bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08716# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09116# If a shader object is
+--     bound to any graphics stage or the currently bound graphics pipeline
+--     was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is
+--     non-sparse then it /must/ be bound completely and contiguously to a
+--     single 'Vulkan.Core10.Handles.DeviceMemory' object
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709# @buffer@ /must/
+--     have been created with the
+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'
+--     bit set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710# @offset@ /must/ be
+--     a multiple of @4@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711#
+--     @commandBuffer@ /must/ not be a protected command buffer
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-drawCount-02719# @drawCount@
+--     /must/ be less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146# If @drawCount@
+--     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/
+--     be greater than or equal to
+--     @sizeof@('DrawMeshTasksIndirectCommandNV')
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156# If @drawCount@
+--     is equal to @1@, (@offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157# If @drawCount@
+--     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +
+--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or
+--     equal to the size of @buffer@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081# The current
+--     pipeline bound to
+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'
+--     /must/ contain a shader stage using the @MeshNV@ @Execution@ @Model@
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter#
+--     @commandBuffer@ /must/ be a valid
+--     'Vulkan.Core10.Handles.CommandBuffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter# @buffer@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool# The
+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
+--     allocated from /must/ support graphics operations
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-renderpass# This command /must/
+--     only be called inside of a render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-videocoding# This command /must/
+--     only be called outside of a video coding scope
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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_NV_mesh_shader VK_NV_mesh_shader>,
+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'
+cmdDrawMeshTasksIndirectNV :: 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)
+                           -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.
+                              ("drawCount" ::: Word32)
+                           -> -- | @stride@ is the byte stride between successive sets of draw parameters.
+                              ("stride" ::: Word32)
+                           -> io ()
+cmdDrawMeshTasksIndirectNV commandBuffer
+                             buffer
+                             offset
+                             drawCount
+                             stride = liftIO $ do
+  let vkCmdDrawMeshTasksIndirectNVPtr = pVkCmdDrawMeshTasksIndirectNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
+  unless (vkCmdDrawMeshTasksIndirectNVPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectNV is null" Nothing Nothing
+  let vkCmdDrawMeshTasksIndirectNV' = mkVkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNVPtr
+  traceAroundEvent "vkCmdDrawMeshTasksIndirectNV" (vkCmdDrawMeshTasksIndirectNV'
+                                                     (commandBufferHandle (commandBuffer))
+                                                     (buffer)
+                                                     (offset)
+                                                     (drawCount)
+                                                     (stride))
+  pure $ ()
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkCmdDrawMeshTasksIndirectCountNV
+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()
+
+-- | vkCmdDrawMeshTasksIndirectCountNV - Perform an indirect mesh tasks draw
+-- with the draw count sourced from a buffer
+--
+-- = Description
+--
+-- 'cmdDrawMeshTasksIndirectCountNV' behaves similarly to
+-- 'cmdDrawMeshTasksIndirectNV' except that the draw count is read by the
+-- device from a buffer during execution. The command will read an unsigned
+-- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use
+-- this as the draw count.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07888# If a
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'
+--     descriptor is accessed using atomic operations as a result of this
+--     command, then the storage texel buffer’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-cubicRangeClamp-09212# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-selectableCubicWeights-09214#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08600# For each set /n/
+--     that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601# For each push
+--     constant that is statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602# 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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and
+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
+--     create the current 'Vulkan.Core10.Handles.Pipeline' or
+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08604# Descriptors in
+--     bound descriptor buffers, specified via
+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
+--     /must/ be valid if they are dynamically used by any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08605# If a descriptor
+--     is dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'
+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was
+--     created with
+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',
+--     the descriptor memory /must/ be resident
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     feature is not enabled, a valid pipeline /must/ be bound to the
+--     pipeline bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608# If a pipeline is
+--     bound to the pipeline bind point used by this command, 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-vkCmdDrawMeshTasksIndirectCountNV-None-08609# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectCountNV-None-08610# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectCountNV-None-08611# If the
+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
+--     point used by this command or any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08612# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a uniform
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08613# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>
+--     feature is not enabled, and any
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
+--     to the pipeline bind point used by this command accesses a storage
+--     buffer, it /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-vkCmdDrawMeshTasksIndirectCountNV-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
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-format-07753# If a
+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977#
+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
+--     @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-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978#
+--     If any command other than @OpImageWeightedSampleQCOM@,
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09215#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction 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-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09216#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09217#
+--     If a @OpImageBlockMatchWindow*QCOM@ or
+--     @OpImageBlockMatchGather*QCOM@ 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07748# If any shader
+--     statically accesses an input attachment, a valid descriptor /must/
+--     be bound to the pipeline via a descriptor set
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-09000# If a color
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001# If a depth
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002# If a stencil
+--     attachment is written by any prior command in this subpass or by the
+--     load, store, or resolve operations for this subpass, it is not in
+--     the
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'
+--     image layout, and either:
+--
+--     -   the
+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'
+--         is set on the currently bound pipeline or
+--
+--     -   the last call to
+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--         included
+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'
+--         and
+--
+--         -   there is no currently bound graphics pipeline or
+--
+--         -   the currently bound graphics pipeline was created with
+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--             it /must/ not be accessed in any way other than as an
+--             attachment by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003# If an attachment
+--     is written by any prior command in this subpass or by the load,
+--     store, or resolve operations for this subpass, it /must/ not be
+--     accessed in any way other than as an attachment, storage image, or
+--     sampled image by this command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539# If any
+--     previously recorded command in the current subpass accessed an image
+--     subresource used as an attachment in this subpass in any way other
+--     than as an attachment, this command /must/ not write to that image
+--     subresource as an attachment
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07831# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' /must/ have been
+--     called in the current command buffer prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619# If a shader
+--     object that outputs line primitives is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic
+--     state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'
+--     in the current command buffer set @depthBiasEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or
+--     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'
+--     dynamic state enabled then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer set any element of
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and
+--     the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     in the current command buffer set the same element of
+--     @pColorBlendEquations@ to a
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'
+--     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'
+--     member with a value of
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or
+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'
+--     dynamic state enabled, and if the current @depthBoundsTestEnable@
+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     in the current command buffer set @depthBoundsTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have
+--     been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08624# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'
+--     dynamic state enabled, and if the current @stencilTestEnable@ state
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08625# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE',
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/
+--     have been called in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08626# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     in the current command buffer set @sampleLocationsEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the
+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
+--     structure the bound graphics pipeline has been created with
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'
+--     in the current command buffer set @depthTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'
+--     dynamic state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08633# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic
+--     state enabled then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08634# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'
+--     in the current command buffer set @stencilTestEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08635# If a shader
+--     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-09232# If a shader
+--     object is bound to any graphics stage, and the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,
+--     then
+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636# If a shader
+--     object is bound to any graphics stage, and the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,
+--     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233# If
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     in the current command buffer set shadingRateImageEnable to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637# If a shader
+--     object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled on the device, 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07878# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235# If a
+--     shader object is bound to any graphics stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>
+--     feature is enabled, then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'
+--     in the current command buffer set any element of
+--     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',
+--     then
+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08639# If a shader
+--     object is bound to any graphics stage, 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08640# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08641# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-08642#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>
+--     limit is not supported, and any shader object bound to a graphics
+--     stage writes 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08643# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color
+--     attachment in the render pass, 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 corresponding member of @pColorBlendEnables@ in the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     in the current command buffer that affected that attachment index
+--     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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 is enabled, then @rasterizationSamples@ for the currently
+--     bound graphics pipeline /must/ be the same as the current subpass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     in the current command buffer /must/ have set @rasterizationSamples@
+--     to be the same as the number of samples for the current render pass
+--     color and\/or depth\/stencil attachments
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876# If a shader
+--     object is bound to any graphics stage, the current render pass
+--     instance /must/ have been begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08910#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled, and 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, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, and 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-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362#
+--     If 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@
+--     equal to @1@, there is no shader object bound to any graphics stage,
+--     and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     each element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
+--     array with a @resolveImageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363# If there is no
+--     shader object bound to any graphics stage, the current render pass
+--     instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, and a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     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 an image created with a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value equal to the
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value used to create the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set the blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and 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 set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366# If there is a
+--     shader object bound to any graphics stage, and the current render
+--     pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have set blend enable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367#
+--     If there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have set @rasterizationSamples@ to
+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior
+--     to this drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369# If the current
+--     render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is no shader object bound to any graphics stage, and the
+--     currently bound graphics pipeline was created with a non-zero
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@
+--     value and with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'
+--     dynamic state enabled, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371# If
+--     there is a shader object bound to any graphics stage, and the
+--     current render pass includes a color attachment that uses the
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'
+--     resolve mode, then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08646# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08647# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>
+--     feature is enabled on the device, and a shader object is bound to
+--     the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@
+--     parameter of most recent call to
+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'
+--     in the current command buffer /must/ be greater than or equal to the
+--     number of color attachments in the current render pass instance
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-07880# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09236#
+--     If the @VK_EXT_discard_rectangles@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08648# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08649# If the
+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'
+--     in the current command buffer set @discardRectangleEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08913#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08914#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08915#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08916#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08917#
+--     If current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     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.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-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08918#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
+--     feature is enabled,
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the currently bound graphics pipeline was not equal
+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,
+--     the value of the format /must/ be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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 @rasterizationSamples@ for
+--     the currently bound graphics pipeline
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountNV-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
+--     @rasterizationSamples@ for 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-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935# If this command
+--     has been called inside a render pass instance started with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     and the @pNext@ chain of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'
+--     includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of
+--     @rasterizationSamples@ for the currently bound graphics pipeline
+--     /must/ be equal to
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound with a fragment shader that
+--     statically writes to a color attachment, the color write mask is not
+--     zero, color writes are enabled, and the corresponding element of the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-08964# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, depth test is enabled, depth
+--     write is enabled, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-08965# If
+--     the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
+--     there is a graphics pipeline bound, stencil test is enabled and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@
+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@
+--     used to create the pipeline /must/ not be
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-09237# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08650# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08651# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08652# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08653# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08919#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'
+--     dynamic state enabled, and @alphaToCoverageEnable@ was
+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
+--     then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08654# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08920#
+--     If a shader object is bound to any graphics stage, and the most
+--     recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'
+--     in the current command buffer set @alphaToCoverageEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>
+--     /must/ contain a variable for the alpha @Component@ word in
+--     @Location@ 0 at @Index@ 0
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08655# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08656# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08657# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08658# If a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'
+--     for any attachment set that attachment’s value in
+--     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08659# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08660# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08661# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08662# If the
+--     @VK_EXT_conservative_rasterization@ extension is enabled, and a
+--     shader object is bound to any graphics stage, and the most recent
+--     call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'
+--     in the current command buffer set @conservativeRasterizationMode@ to
+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08663# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08664# If the
+--     @VK_EXT_sample_locations@ extension is enabled, and a shader object
+--     is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08665# If the
+--     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object
+--     is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08666# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08669# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'
+--     in the current command buffer set @polygonMode@ to
+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to the vertex stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
+--     in the current command buffer set @primitiveTopology@ to any line
+--     topology, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object that outputs line primitives is bound to the tessellation
+--     evaluation or geometry stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672# If the
+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'
+--     in the current command buffer set @stippledLineEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08673# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08674# If the
+--     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader
+--     object is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08675# If the
+--     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object
+--     is bound to any graphics stage, then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08676# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08677# If the
+--     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a
+--     shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'
+--     in the current command buffer set @coverageToColorEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08678# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08679# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'
+--     in the current command buffer set coverageModulationMode to any
+--     value other than
+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',
+--     then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08680# If the
+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader
+--     object is bound to any graphics stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'
+--     in the current command buffer set @coverageModulationTableEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-pipelineFragmentShadingRate-09238#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>
+--     feature is enabled, and a shader object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set rasterizerDiscardEnable to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'
+--     must have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08682# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08683# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>
+--     feature is enabled, and a shader object is bound to any graphics
+--     stage, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', then
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor
+--     the @VK_NV_framebuffer_mixed_samples@ extensions are 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-vkCmdDrawMeshTasksIndirectCountNV-None-09211# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, or a shader object is bound to any graphics stage,
+--     and the current render pass instance includes a
+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'
+--     structure with @multisampledRenderToSingleSampledEnable@ equal to
+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--     /must/ be the same as the @rasterizationSamples@ member of that
+--     structure
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.width@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then,
+--     @sampleLocationsInfo.sampleLocationGridSize.height@ /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 the value of
+--     @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938#
+--     If the bound graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
+--     state disabled and the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'
+--     state enabled, the @sampleLocationsEnable@ member of a
+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@
+--     in the bound graphics pipeline is
+--     'Vulkan.Core10.FundamentalTypes.TRUE' or
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'
+--     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@
+--     /must/ equal @rasterizationSamples@ in the last call to
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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 'Vulkan.Core10.FundamentalTypes.TRUE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-08877# If the bound
+--     graphics pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'
+--     dynamic state
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850# If dynamic state
+--     was inherited from
+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',
+--     it /must/ be set in the current command buffer prior to this drawing
+--     command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08685# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08686# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08687# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08688# If there is no
+--     bound graphics pipeline,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08689# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08690# If there is no
+--     bound graphics pipeline, and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     feature is enabled,
+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/
+--     have been called in the current command buffer with @pStages@ with
+--     an element of
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08693# If there is no
+--     bound graphics pipeline, and at least one of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features is enabled, one of the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound, and the other /must/ have no
+--     'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     without the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08695# If there is no
+--     bound graphics pipeline, and both the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>
+--     features are enabled, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created
+--     with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'
+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--     to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696# If there is no
+--     bound graphics pipeline, and a valid
+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'
+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'
+--     bound to either the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'
+--     stage or the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
+--     stage
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, then all shaders created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag in the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ also be bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699# If any graphics
+--     shader is bound which was created with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag, any stages in between stages whose shaders which did not
+--     create a shader with the
+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'
+--     flag as part of the same
+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call
+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878# All bound
+--     graphics shader objects /must/ have been created with identical or
+--     identically defined push constant ranges
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879# All bound
+--     graphics shader objects /must/ have been created with identical or
+--     identically defined arrays of descriptor set layouts
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372#
+--     If the current render pass instance was begun with
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
+--     and a
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
+--     equal to @1@, a color attachment with a resolve mode of
+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
+--     and a fragment shader is bound, it /must/ not declare the
+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880# If a shader
+--     object is bound to the
+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'
+--     stage and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>
+--     feature is enabled on the device, and the most recent call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
+--     in the current command buffer set @rasterizerDiscardEnable@ to
+--     'Vulkan.Core10.FundamentalTypes.FALSE'
+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'
+--     /must/ have been called in the current command buffer prior to this
+--     drawing command
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@
+--     parameter in the last call to
+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'
+--     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08716# If the
+--     bound graphics pipeline state includes a fragment shader stage, was
+--     created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'
+--     set in
+--     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,
+--     and the fragment shader declares the @EarlyFragmentTests@ execution
+--     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@
+--     parameter in the last call to
+--     'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/
+--     be @0@
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116# If a shader
+--     object is bound to any graphics stage or the currently bound
+--     graphics pipeline was created with
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',
+--     and the format of any color attachment is
+--     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the
+--     corresponding element of the @pColorWriteMasks@ parameter of
+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'
+--     /must/ either include all of
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',
+--     and
+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',
+--     or none of them
+--
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxFragmentDualSrcAttachments-09239#
+--     If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>
+--     is enabled for any attachment where either the source or destination
+--     blend factors for that attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,
+--     the maximum value of @Location@ for any output attachment
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>
+--     in the @Fragment@ @Execution@ @Model@ executed by this command
+--     /must/ be less than
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480# The bound
 --     graphics pipeline /must/ not have been created with the
diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_optical_flow.hs b/src/Vulkan/Extensions/VK_NV_optical_flow.hs
--- a/src/Vulkan/Extensions/VK_NV_optical_flow.hs
+++ b/src/Vulkan/Extensions/VK_NV_optical_flow.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -885,7 +888,7 @@
 --
 -- -   #VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool# The
 --     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support opticalflow operations
+--     allocated from /must/ support optical flow operations
 --
 -- -   #VUID-vkCmdOpticalFlowExecuteNV-renderpass# This command /must/ only
 --     be called outside of a render pass instance
diff --git a/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot b/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_present_barrier.hs b/src/Vulkan/Extensions/VK_NV_present_barrier.hs
--- a/src/Vulkan/Extensions/VK_NV_present_barrier.hs
+++ b/src/Vulkan/Extensions/VK_NV_present_barrier.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot b/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -143,8 +146,6 @@
 --
 -- -   'GeometryTrianglesNV'
 --
--- -   'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR'
---
 -- -   'RayTracingPipelineCreateInfoNV'
 --
 -- -   'RayTracingShaderGroupCreateInfoNV'
@@ -160,6 +161,12 @@
 --
 --     -   'WriteDescriptorSetAccelerationStructureNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR'
+--
 -- == New Enums
 --
 -- -   'AccelerationStructureMemoryRequirementsTypeNV'
@@ -232,11 +239,6 @@
 --
 --     -   'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':
 --
 --     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV'
@@ -342,6 +344,15 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT'
+--
 -- == New or Modified Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV>
@@ -441,9 +452,7 @@
 -- 'GeometryAABBNV', 'GeometryDataNV', 'GeometryFlagBitsNV',
 -- 'GeometryFlagsNV', 'GeometryInstanceFlagBitsNV',
 -- 'GeometryInstanceFlagsNV', 'GeometryNV', 'GeometryTrianglesNV',
--- 'GeometryTypeNV',
--- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR',
--- 'PhysicalDeviceRayTracingPropertiesNV',
+-- 'GeometryTypeNV', 'PhysicalDeviceRayTracingPropertiesNV',
 -- 'RayTracingPipelineCreateInfoNV', 'RayTracingShaderGroupCreateInfoNV',
 -- 'RayTracingShaderGroupTypeNV', 'TransformMatrixNV',
 -- 'WriteDescriptorSetAccelerationStructureNV',
@@ -682,6 +691,7 @@
 import Vulkan.Core10.Handles (PipelineCache)
 import Vulkan.Core10.Handles (PipelineCache(..))
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
 import Vulkan.Core10.Handles (PipelineLayout)
 import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
@@ -865,8 +875,11 @@
 -- Similarly to other objects in Vulkan, the acceleration structure
 -- creation merely creates an object with a specific “shape” as specified
 -- by the information in 'AccelerationStructureInfoNV' and @compactedSize@
--- in @pCreateInfo@. Populating the data in the object after allocating and
--- binding memory is done with 'cmdBuildAccelerationStructureNV' and
+-- in @pCreateInfo@.
+--
+-- Once memory has been bound to the acceleration structure using
+-- 'bindAccelerationStructureMemoryNV', that memory is populated by calls
+-- to 'cmdBuildAccelerationStructureNV' and
 -- 'cmdCopyAccelerationStructureNV'.
 --
 -- Acceleration structure creation uses the count and type information from
@@ -1761,6 +1774,16 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'
 --
+-- -   #VUID-vkCmdTraceRaysNV-None-02693# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'
+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a
+--     result of this command, it /must/ not have a
+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or
+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'
+--
 -- -   #VUID-vkCmdTraceRaysNV-filterCubic-02694# Any
 --     'Vulkan.Core10.Handles.ImageView' being sampled with
 --     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this
@@ -1786,6 +1809,33 @@
 --     returned by
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 --
+-- -   #VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command
+--
+--     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']
+--         @reductionMode@ equal to
+--         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   #VUID-vkCmdTraceRaysNV-reductionMode-09213# Any
+--     'Vulkan.Core10.Handles.ImageView' being sampled with a
+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@
+--     equal to
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--     as a result of this command /must/ sample with
+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'
+--
+-- -   #VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>
+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'
+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as
+--     a result of this command /must/ have
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@
+--     equal to
+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'
+--
 -- -   #VUID-vkCmdTraceRaysNV-flags-02696# Any
 --     'Vulkan.Core10.Handles.Image' created with a
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing
@@ -1827,11 +1877,9 @@
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-08600# For each set /n/ that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding to the pipeline bind point used by this command, a
---     descriptor set /must/ have been bound to /n/ at the same pipeline
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
@@ -1841,12 +1889,10 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-08601# For each push constant that is
---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the
---     pipeline bind point used by this command, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -1858,12 +1904,10 @@
 -- -   #VUID-vkCmdTraceRaysNV-maintenance4-08602# 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, or by any of the
---     'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages
---     corresponding 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
+--     statically used by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,
+--     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' or
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
@@ -2024,34 +2068,25 @@
 --     buffer as specified in the descriptor set bound to the same pipeline
 --     bind point
 --
--- -   #VUID-vkCmdTraceRaysNV-commandBuffer-08614# If @commandBuffer@ is an
+-- -   #VUID-vkCmdTraceRaysNV-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 or any
---     'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage
---     corresponding to the pipeline bind point used by this command /must/
---     not be a protected resource
+--     is not supported, any resource accessed by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>
+--     /must/ not be a protected resource
 --
--- -   #VUID-vkCmdTraceRaysNV-None-08615# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysNV-None-06550# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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-vkCmdTraceRaysNV-ConstOffset-08616# If the
---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
---     point used by this command or any
---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding
---     to the pipeline bind point used by this command accesses a
---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'
---     object that enables
+-- -   #VUID-vkCmdTraceRaysNV-ConstOffset-06551# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>
+--     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
 --
@@ -2063,18 +2098,24 @@
 --
 -- -   #VUID-vkCmdTraceRaysNV-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
+--     command, then the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>
+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the
+--     @OpTypeImage@ /must/ match
 --
--- -   #VUID-vkCmdTraceRaysNV-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-vkCmdTraceRaysNV-OpImageWrite-08795# If a
+--     'Vulkan.Core10.Handles.ImageView' created with a format other than
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' 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-vkCmdTraceRaysNV-OpImageWrite-08796# If a
+--     'Vulkan.Core10.Handles.ImageView' created with the format
+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using
+--     @OpImageWrite@ as a result of this command, then the @Type@ of the
+--     @Texel@ operand of that instruction /must/ have four components
+--
 -- -   #VUID-vkCmdTraceRaysNV-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
@@ -2175,6 +2216,8 @@
 --
 -- -   #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977# If
 --     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,
+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,
+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,
 --     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a
 --     'Vulkan.Core10.Handles.Sampler' as a result of this command, then
 --     the sampler /must/ have been created with
@@ -2182,12 +2225,35 @@
 --
 -- -   #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978# If any
 --     command other than @OpImageWeightedSampleQCOM@,
---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or
+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,
+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,
+--     @OpImageBlockMatchGatherSADQCOM@, @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-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction 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-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     instruction is used to read from an
+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then
+--     the image view’s format /must/ be a single-component format.
+--
+-- -   #VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217# If a
+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@
+--     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-vkCmdTraceRaysNV-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>
@@ -2978,13 +3044,19 @@
 -- described in more detail in
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.
 --
+-- If a
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+-- structure is present in the @pNext@ chain,
+-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@
+-- from that structure is used instead of @flags@ from this structure.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-flags-07984# If @flags@
 --     contains the
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'
 --     flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be
---     a valid handle to a ray tracing 'Vulkan.Core10.Handles.Pipeline'
+--     a valid ray tracing 'Vulkan.Core10.Handles.Pipeline' handle
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-flags-07985# If @flags@
 --     contains the
@@ -3123,8 +3195,11 @@
 --     be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV'
 --
--- -   #VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext# @pNext@ /must/
---     be @NULL@ or a pointer to a valid instance of
+-- -   #VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext# Each @pNext@
+--     member of any structure (including this one) in the @pNext@ chain
+--     /must/ be either @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'
+--     or
 --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'
 --
 -- -   #VUID-VkRayTracingPipelineCreateInfoNV-sType-unique# The @sType@
@@ -3210,6 +3285,7 @@
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoNV e => b) -> Maybe b
   extends _ f
     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f
+    | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss RayTracingPipelineCreateInfoNV es
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -143,8 +146,6 @@
 --
 -- -   'GeometryTrianglesNV'
 --
--- -   'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR'
---
 -- -   'RayTracingPipelineCreateInfoNV'
 --
 -- -   'RayTracingShaderGroupCreateInfoNV'
@@ -160,6 +161,12 @@
 --
 --     -   'WriteDescriptorSetAccelerationStructureNV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 VK_KHR_get_memory_requirements2>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR'
+--
 -- == New Enums
 --
 -- -   'AccelerationStructureMemoryRequirementsTypeNV'
@@ -232,11 +239,6 @@
 --
 --     -   'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV'
 --
--- -   Extending
---     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
---
---     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT'
---
 -- -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':
 --
 --     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV'
@@ -342,6 +344,15 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
+--
+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT'
+--
 -- == New or Modified Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV>
@@ -441,9 +452,7 @@
 -- 'GeometryAABBNV', 'GeometryDataNV', 'GeometryFlagBitsNV',
 -- 'GeometryFlagsNV', 'GeometryInstanceFlagBitsNV',
 -- 'GeometryInstanceFlagsNV', 'GeometryNV', 'GeometryTrianglesNV',
--- 'GeometryTypeNV',
--- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR',
--- 'PhysicalDeviceRayTracingPropertiesNV',
+-- 'GeometryTypeNV', 'PhysicalDeviceRayTracingPropertiesNV',
 -- 'RayTracingPipelineCreateInfoNV', 'RayTracingShaderGroupCreateInfoNV',
 -- 'RayTracingShaderGroupTypeNV', 'TransformMatrixNV',
 -- 'WriteDescriptorSetAccelerationStructureNV',
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --
@@ -81,6 +84,134 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV'
+--
+-- == HLSL Mapping
+--
+-- HLSL does not provide this functionality natively yet.
+--
+-- However, it is possible to use this functionality via
+-- <https://github.com/microsoft/DirectXShaderCompiler/wiki/GL_EXT_spirv_intrinsics-for-SPIR-V-code-gen SPIR-V Intrinsics>.
+--
+-- The codes for shader invocation reorder are obtained from
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_shader_invocation_reorder.html this page>:
+--
+-- > #define ShaderInvocationReorderNV 5383
+-- > #define HitObjectAttributeNV 5385
+-- >
+-- > #define OpHitObjectRecordHitMotionNV 5249
+-- > #define OpHitObjectRecordHitWithIndexMotionNV 5250
+-- > #define OpHitObjectRecordMissMotionNV 5251
+-- > #define OpHitObjectGetWorldToObjectNV 5252
+-- > #define OpHitObjectGetObjectToWorldNV 5253
+-- > #define OpHitObjectGetObjectRayDirectionNV 5254
+-- > #define OpHitObjectGetObjectRayOriginNV 5255
+-- > #define OpHitObjectTraceRayMotionNV 5256
+-- > #define OpHitObjectGetShaderRecordBufferHandleNV 5257
+-- > #define OpHitObjectGetShaderBindingTableRecordIndexNV 5258
+-- > #define OpHitObjectRecordEmptyNV 5259
+-- > #define OpHitObjectTraceRayNV 5260
+-- > #define OpHitObjectRecordHitNV 5261
+-- > #define OpHitObjectRecordHitWithIndexNV 5262
+-- > #define OpHitObjectRecordMissNV 5263
+-- > #define OpHitObjectExecuteShaderNV 5264
+-- > #define OpHitObjectGetCurrentTimeNV 5265
+-- > #define OpHitObjectGetAttributesNV 5266
+-- > #define OpHitObjectGetHitKindNV 5267
+-- > #define OpHitObjectGetPrimitiveIndexNV 5268
+-- > #define OpHitObjectGetGeometryIndexNV 5269
+-- > #define OpHitObjectGetInstanceIdNV 5270
+-- > #define OpHitObjectGetInstanceCustomIndexNV 5271
+-- > #define OpHitObjectGetWorldRayDirectionNV 5272
+-- > #define OpHitObjectGetWorldRayOriginNV 5273
+-- > #define OpHitObjectGetRayTMaxNV 5274
+-- > #define OpHitObjectGetRayTMinNV 5275
+-- > #define OpHitObjectIsEmptyNV 5276
+-- > #define OpHitObjectIsHitNV 5277
+-- > #define OpHitObjectIsMissNV 5278
+-- > #define OpReorderThreadWithHitObjectNV 5279
+-- > #define OpReorderThreadWithHintNV 5280
+-- > #define OpTypeHitObjectNV 5281
+--
+-- The capability and extension need to be added:
+--
+-- > [[vk::ext_capability(ShaderInvocationReorderNV)]]
+-- > [[vk::ext_extension("SPV_NV_shader_invocation_reorder")]]
+--
+-- The creation of the @HitObject@ type can be done like this:
+--
+-- > [[vk::ext_type_def(HitObjectAttributeNV, OpTypeHitObjectNV)]]
+-- > void createHitObjectNV();
+-- > #define HitObjectNV vk::ext_type<HitObjectAttributeNV>
+--
+-- The payload:
+--
+-- -   must be global
+--
+-- -   needs the @RayPayloadKHR@ attribute as an extra storage class
+--
+-- > struct [raypayload] HitPayload
+-- > {
+-- >   float hitT : write(closesthit, miss) : read(caller);
+-- >   int instanceIndex : write(closesthit) : read(caller);
+-- >   float3 pos : write(closesthit) : read(caller);
+-- >   float3 nrm : write(closesthit) : read(caller);
+-- > };
+-- >
+-- > #define RayPayloadKHR 5338
+-- > [[vk::ext_storage_class(RayPayloadKHR)]] static HitPayload payload;
+--
+-- Here is the declaration of a few invocation reordering functions:
+--
+-- > [[vk::ext_instruction(OpHitObjectRecordEmptyNV)]]
+-- > void hitObjectRecordEmptyNV([[vk::ext_reference]] HitObjectNV hitObject);
+-- >
+-- > [[vk::ext_instruction(OpHitObjectTraceRayNV)]]
+-- > void hitObjectTraceRayNV(
+-- >     [[vk::ext_reference]] HitObjectNV hitObject,
+-- >     RaytracingAccelerationStructure as,
+-- >     uint RayFlags,
+-- >     uint CullMask,
+-- >     uint SBTOffset,
+-- >     uint SBTStride,
+-- >     uint MissIndex,
+-- >     float3 RayOrigin,
+-- >     float RayTmin,
+-- >     float3 RayDirection,
+-- >     float RayTMax,
+-- >     [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload
+-- >   );
+-- >
+-- > [[vk::ext_instruction(OpReorderThreadWithHintNV)]]
+-- > void reorderThreadWithHintNV(int Hint, int Bits);
+-- >
+-- > [[vk::ext_instruction(OpReorderThreadWithHitObjectNV)]]
+-- > void reorderThreadWithHitObjectNV([[vk::ext_reference]] HitObjectNV hitObject);
+-- >
+-- > [[vk::ext_instruction(OpHitObjectExecuteShaderNV)]]
+-- > void hitObjectExecuteShaderNV([[vk::ext_reference]] HitObjectNV hitObject, [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload);
+-- >
+-- > [[vk::ext_instruction(OpHitObjectIsHitNV)]]
+-- > bool hitObjectIsHitNV([[vk::ext_reference]] HitObjectNV hitObject);
+--
+-- Using the function in the code, can be done like this
+--
+-- >   if (USE_SER == 1)
+-- >   {
+-- >     createHitObjectNV();
+-- >     HitObjectNV hObj; //  hitObjectNV hObj;
+-- >     hitObjectRecordEmptyNV(hObj); //Initialize to an empty hit object
+-- >     hitObjectTraceRayNV(hObj, topLevelAS, rayFlags, 0xFF, 0, 0, 0, r.Origin, 0.0, r.Direction, INFINITE, payload);
+-- >     reorderThreadWithHitObjectNV(hObj);
+-- >     hitObjectExecuteShaderNV(hObj, payload);
+-- >   }
+--
+-- Note:
+--
+-- -   createHitObjectNV() needs to be call at least once. This can be also
+--     done in the main entry of the shader.
+--
+-- -   Function with a payload parameter, needs to have the payload struct
+--     defined before. There are no templated declaration of the function.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --
@@ -81,6 +84,134 @@
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV'
+--
+-- == HLSL Mapping
+--
+-- HLSL does not provide this functionality natively yet.
+--
+-- However, it is possible to use this functionality via
+-- <https://github.com/microsoft/DirectXShaderCompiler/wiki/GL_EXT_spirv_intrinsics-for-SPIR-V-code-gen SPIR-V Intrinsics>.
+--
+-- The codes for shader invocation reorder are obtained from
+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_shader_invocation_reorder.html this page>:
+--
+-- > #define ShaderInvocationReorderNV 5383
+-- > #define HitObjectAttributeNV 5385
+-- >
+-- > #define OpHitObjectRecordHitMotionNV 5249
+-- > #define OpHitObjectRecordHitWithIndexMotionNV 5250
+-- > #define OpHitObjectRecordMissMotionNV 5251
+-- > #define OpHitObjectGetWorldToObjectNV 5252
+-- > #define OpHitObjectGetObjectToWorldNV 5253
+-- > #define OpHitObjectGetObjectRayDirectionNV 5254
+-- > #define OpHitObjectGetObjectRayOriginNV 5255
+-- > #define OpHitObjectTraceRayMotionNV 5256
+-- > #define OpHitObjectGetShaderRecordBufferHandleNV 5257
+-- > #define OpHitObjectGetShaderBindingTableRecordIndexNV 5258
+-- > #define OpHitObjectRecordEmptyNV 5259
+-- > #define OpHitObjectTraceRayNV 5260
+-- > #define OpHitObjectRecordHitNV 5261
+-- > #define OpHitObjectRecordHitWithIndexNV 5262
+-- > #define OpHitObjectRecordMissNV 5263
+-- > #define OpHitObjectExecuteShaderNV 5264
+-- > #define OpHitObjectGetCurrentTimeNV 5265
+-- > #define OpHitObjectGetAttributesNV 5266
+-- > #define OpHitObjectGetHitKindNV 5267
+-- > #define OpHitObjectGetPrimitiveIndexNV 5268
+-- > #define OpHitObjectGetGeometryIndexNV 5269
+-- > #define OpHitObjectGetInstanceIdNV 5270
+-- > #define OpHitObjectGetInstanceCustomIndexNV 5271
+-- > #define OpHitObjectGetWorldRayDirectionNV 5272
+-- > #define OpHitObjectGetWorldRayOriginNV 5273
+-- > #define OpHitObjectGetRayTMaxNV 5274
+-- > #define OpHitObjectGetRayTMinNV 5275
+-- > #define OpHitObjectIsEmptyNV 5276
+-- > #define OpHitObjectIsHitNV 5277
+-- > #define OpHitObjectIsMissNV 5278
+-- > #define OpReorderThreadWithHitObjectNV 5279
+-- > #define OpReorderThreadWithHintNV 5280
+-- > #define OpTypeHitObjectNV 5281
+--
+-- The capability and extension need to be added:
+--
+-- > [[vk::ext_capability(ShaderInvocationReorderNV)]]
+-- > [[vk::ext_extension("SPV_NV_shader_invocation_reorder")]]
+--
+-- The creation of the @HitObject@ type can be done like this:
+--
+-- > [[vk::ext_type_def(HitObjectAttributeNV, OpTypeHitObjectNV)]]
+-- > void createHitObjectNV();
+-- > #define HitObjectNV vk::ext_type<HitObjectAttributeNV>
+--
+-- The payload:
+--
+-- -   must be global
+--
+-- -   needs the @RayPayloadKHR@ attribute as an extra storage class
+--
+-- > struct [raypayload] HitPayload
+-- > {
+-- >   float hitT : write(closesthit, miss) : read(caller);
+-- >   int instanceIndex : write(closesthit) : read(caller);
+-- >   float3 pos : write(closesthit) : read(caller);
+-- >   float3 nrm : write(closesthit) : read(caller);
+-- > };
+-- >
+-- > #define RayPayloadKHR 5338
+-- > [[vk::ext_storage_class(RayPayloadKHR)]] static HitPayload payload;
+--
+-- Here is the declaration of a few invocation reordering functions:
+--
+-- > [[vk::ext_instruction(OpHitObjectRecordEmptyNV)]]
+-- > void hitObjectRecordEmptyNV([[vk::ext_reference]] HitObjectNV hitObject);
+-- >
+-- > [[vk::ext_instruction(OpHitObjectTraceRayNV)]]
+-- > void hitObjectTraceRayNV(
+-- >     [[vk::ext_reference]] HitObjectNV hitObject,
+-- >     RaytracingAccelerationStructure as,
+-- >     uint RayFlags,
+-- >     uint CullMask,
+-- >     uint SBTOffset,
+-- >     uint SBTStride,
+-- >     uint MissIndex,
+-- >     float3 RayOrigin,
+-- >     float RayTmin,
+-- >     float3 RayDirection,
+-- >     float RayTMax,
+-- >     [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload
+-- >   );
+-- >
+-- > [[vk::ext_instruction(OpReorderThreadWithHintNV)]]
+-- > void reorderThreadWithHintNV(int Hint, int Bits);
+-- >
+-- > [[vk::ext_instruction(OpReorderThreadWithHitObjectNV)]]
+-- > void reorderThreadWithHitObjectNV([[vk::ext_reference]] HitObjectNV hitObject);
+-- >
+-- > [[vk::ext_instruction(OpHitObjectExecuteShaderNV)]]
+-- > void hitObjectExecuteShaderNV([[vk::ext_reference]] HitObjectNV hitObject, [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload);
+-- >
+-- > [[vk::ext_instruction(OpHitObjectIsHitNV)]]
+-- > bool hitObjectIsHitNV([[vk::ext_reference]] HitObjectNV hitObject);
+--
+-- Using the function in the code, can be done like this
+--
+-- >   if (USE_SER == 1)
+-- >   {
+-- >     createHitObjectNV();
+-- >     HitObjectNV hObj; //  hitObjectNV hObj;
+-- >     hitObjectRecordEmptyNV(hObj); //Initialize to an empty hit object
+-- >     hitObjectTraceRayNV(hObj, topLevelAS, rayFlags, 0xFF, 0, 0, 0, r.Origin, 0.0, r.Direction, INFINITE, payload);
+-- >     reorderThreadWithHitObjectNV(hObj);
+-- >     hitObjectExecuteShaderNV(hObj, payload);
+-- >   }
+--
+-- Note:
+--
+-- -   createHitObjectNV() needs to be call at least once. This can be also
+--     done in the main entry of the shader.
+--
+-- -   Function with a payload parameter, needs to have the payload struct
+--     defined before. There are no templated declaration of the function.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs
--- a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs
+++ b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -128,14 +131,14 @@
 -- color buffers. For the use cases intended for this feature, we do not
 -- expect color or depth writes to be enabled.
 --
--- (4) How do derivatives and automatic texture level of detail
--- computations work with the representative fragment test enabled?
+-- (4) How do derivatives and automatic texture LOD computations work with
+-- the representative fragment test enabled?
 --
 -- __RESOLVED__: If a fragment shader uses derivative functions or texture
--- lookups using automatic level of detail computation, derivatives will be
--- computed identically whether or not the representative fragment test is
--- enabled. For the use cases intended for this feature, we do not expect
--- the use of derivatives in the fragment shader.
+-- lookups using automatic LOD computation, derivatives will be computed
+-- identically whether or not the representative fragment test is enabled.
+-- For the use cases intended for this feature, we do not expect the use of
+-- derivatives in the fragment shader.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -128,14 +131,14 @@
 -- color buffers. For the use cases intended for this feature, we do not
 -- expect color or depth writes to be enabled.
 --
--- (4) How do derivatives and automatic texture level of detail
--- computations work with the representative fragment test enabled?
+-- (4) How do derivatives and automatic texture LOD computations work with
+-- the representative fragment test enabled?
 --
 -- __RESOLVED__: If a fragment shader uses derivative functions or texture
--- lookups using automatic level of detail computation, derivatives will be
--- computed identically whether or not the representative fragment test is
--- enabled. For the use cases intended for this feature, we do not expect
--- the use of derivatives in the fragment shader.
+-- lookups using automatic LOD computation, derivatives will be computed
+-- identically whether or not the representative fragment test is enabled.
+-- For the use cases intended for this feature, we do not expect the use of
+-- derivatives in the fragment shader.
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs b/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs
--- a/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs
+++ b/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Piers Daniell
diff --git a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs
--- a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs
+++ b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs
--- a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs
+++ b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -203,10 +206,10 @@
 -- previous issue. Even if you ignore the anisotropic filtering case where
 -- the implementation may return a granularity larger than that requested
 -- by the caller, each shader invocation will need to use atomic functions
--- to update up to four footprint image texels for each level of detail
--- accessed. Having each active shader invocation perform multiple atomic
--- operations can be expensive, particularly when neighboring invocations
--- will want to update the same footprint image texels.
+-- to update up to four footprint image texels for each LOD accessed.
+-- Having each active shader invocation perform multiple atomic operations
+-- can be expensive, particularly when neighboring invocations will want to
+-- update the same footprint image texels.
 --
 -- Techniques can be used to reduce the number of atomic operations
 -- performed when accumulating coverage include:
diff --git a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -203,10 +206,10 @@
 -- previous issue. Even if you ignore the anisotropic filtering case where
 -- the implementation may return a granularity larger than that requested
 -- by the caller, each shader invocation will need to use atomic functions
--- to update up to four footprint image texels for each level of detail
--- accessed. Having each active shader invocation perform multiple atomic
--- operations can be expensive, particularly when neighboring invocations
--- will want to update the same footprint image texels.
+-- to update up to four footprint image texels for each LOD accessed.
+-- Having each active shader invocation perform multiple atomic operations
+-- can be expensive, particularly when neighboring invocations will want to
+-- update the same footprint image texels.
 --
 -- Techniques can be used to reduce the number of atomic operations
 -- performed when accumulating coverage include:
diff --git a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs
--- a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs
+++ b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs b/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs
--- a/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs
+++ b/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
--- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
+++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_NV_viewport_array2.hs b/src/Vulkan/Extensions/VK_NV_viewport_array2.hs
--- a/src/Vulkan/Extensions/VK_NV_viewport_array2.hs
+++ b/src/Vulkan/Extensions/VK_NV_viewport_array2.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Daniel Koch
diff --git a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs
--- a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs
+++ b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Piers Daniell
diff --git a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Piers Daniell
diff --git a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs
--- a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs
+++ b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32 VK_NV_external_memory_win32>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_KHR_win32_keyed_mutex@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32 VK_NV_external_memory_win32>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_KHR_win32_keyed_mutex@ extension
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs
@@ -0,0 +1,222 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_filter_cubic_clamp - device extension
+--
+-- == VK_QCOM_filter_cubic_clamp
+--
+-- [__Name String__]
+--     @VK_QCOM_filter_cubic_clamp@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     522
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax VK_EXT_sampler_filter_minmax>
+--
+-- [__Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_filter_cubic_clamp] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_filter_cubic_clamp extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-08-02
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension extends cubic filtering by adding the ability to enable
+-- an anti-ringing clamp. Cubic filtering samples from a 4x4 region of
+-- texels and computes a cubic weighted average of the region. In some
+-- cases, the resulting value is outside the range of any of the texels in
+-- the 4x4 region. This is sometimes referred to as “filter overshoot” or
+-- “filter ringing” and can occur when there is a sharp discontinuity in
+-- the 4x4 region being filtered. For some use cases this “ringing” can
+-- produces unacceptable artifacts.
+--
+-- The solution to the ringing problem is to clamp the post-cubic-filtered
+-- value to be within the max and min of texel values in the 4x4 region.
+-- While such “range clamping” can be performed in shader code, the
+-- additional texture fetches and clamping ALU operations can be costly.
+--
+-- Certain Adreno GPUs are able to perform the range clamp in the texture
+-- unit during cubic filtering at significant performance\/power savings
+-- versus a shader-based clamping approach. This extension exposes such
+-- hardware functionality.
+--
+-- This extension extends
+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode', adding
+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+-- which enables the range clamp operation.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCubicClampFeaturesQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME'
+--
+-- -   'QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode':
+--
+--     -   'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-08-02 (jleger)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'PhysicalDeviceCubicClampFeaturesQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_filter_cubic_clamp Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_filter_cubic_clamp  ( PhysicalDeviceCubicClampFeaturesQCOM(..)
+                                                     , QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION
+                                                     , pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION
+                                                     , QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME
+                                                     , pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME
+                                                     ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM))
+-- | VkPhysicalDeviceCubicClampFeaturesQCOM - Structure describing cubic
+-- clamp features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCubicClampFeaturesQCOM' 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. 'PhysicalDeviceCubicClampFeaturesQCOM' /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_QCOM_filter_cubic_clamp VK_QCOM_filter_cubic_clamp>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCubicClampFeaturesQCOM = PhysicalDeviceCubicClampFeaturesQCOM
+  { -- | #features-filter-cubic-range-clamp# @cubicRangeClamp@ indicates that the
+    -- implementation supports cubic filtering in combination with a
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-range-clamp texel range clamp>.
+    cubicRangeClamp :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCubicClampFeaturesQCOM)
+#endif
+deriving instance Show PhysicalDeviceCubicClampFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceCubicClampFeaturesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCubicClampFeaturesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (cubicRangeClamp))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceCubicClampFeaturesQCOM where
+  peekCStruct p = do
+    cubicRangeClamp <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceCubicClampFeaturesQCOM
+             (bool32ToBool cubicRangeClamp)
+
+instance Storable PhysicalDeviceCubicClampFeaturesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCubicClampFeaturesQCOM where
+  zero = PhysicalDeviceCubicClampFeaturesQCOM
+           zero
+
+
+type QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION"
+pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION :: forall a . Integral a => a
+pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1
+
+
+type QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp"
+
+-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME"
+pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp"
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot
@@ -0,0 +1,124 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_filter_cubic_clamp - device extension
+--
+-- == VK_QCOM_filter_cubic_clamp
+--
+-- [__Name String__]
+--     @VK_QCOM_filter_cubic_clamp@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     522
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--     and
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.2 Version 1.2>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax VK_EXT_sampler_filter_minmax>
+--
+-- [__Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_filter_cubic_clamp] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_filter_cubic_clamp extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-08-02
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension extends cubic filtering by adding the ability to enable
+-- an anti-ringing clamp. Cubic filtering samples from a 4x4 region of
+-- texels and computes a cubic weighted average of the region. In some
+-- cases, the resulting value is outside the range of any of the texels in
+-- the 4x4 region. This is sometimes referred to as “filter overshoot” or
+-- “filter ringing” and can occur when there is a sharp discontinuity in
+-- the 4x4 region being filtered. For some use cases this “ringing” can
+-- produces unacceptable artifacts.
+--
+-- The solution to the ringing problem is to clamp the post-cubic-filtered
+-- value to be within the max and min of texel values in the 4x4 region.
+-- While such “range clamping” can be performed in shader code, the
+-- additional texture fetches and clamping ALU operations can be costly.
+--
+-- Certain Adreno GPUs are able to perform the range clamp in the texture
+-- unit during cubic filtering at significant performance\/power savings
+-- versus a shader-based clamping approach. This extension exposes such
+-- hardware functionality.
+--
+-- This extension extends
+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode', adding
+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+-- which enables the range clamp operation.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCubicClampFeaturesQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME'
+--
+-- -   'QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode':
+--
+--     -   'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-08-02 (jleger)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'PhysicalDeviceCubicClampFeaturesQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_filter_cubic_clamp Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_filter_cubic_clamp  (PhysicalDeviceCubicClampFeaturesQCOM) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceCubicClampFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceCubicClampFeaturesQCOM
+instance Show PhysicalDeviceCubicClampFeaturesQCOM
+
+instance FromCStruct PhysicalDeviceCubicClampFeaturesQCOM
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs
@@ -0,0 +1,440 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_filter_cubic_weights - device extension
+--
+-- == VK_QCOM_filter_cubic_weights
+--
+-- [__Name String__]
+--     @VK_QCOM_filter_cubic_weights@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     520
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--
+-- [__Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_filter_cubic_weights] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_filter_cubic_weights extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-06-23
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+--     -   Jonathan Wicks, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension extends cubic filtering by adding the ability to select a
+-- set of weights. Without this extension, the weights used in cubic
+-- filtering are limited to those corresponding to a Catmull-Rom spline.
+-- This extension adds support for 3 additional spline weights.
+--
+-- This extension adds a new structure that /can/ be added to the @pNext@
+-- chain of 'Vulkan.Core10.Sampler.SamplerCreateInfo' that /can/ be used to
+-- specify which set of cubic weights are used in cubic filtering. A
+-- similar structure can be added to the @pNext@ chain of
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2' to
+-- specify cubic weights used in a blit operation.
+--
+-- With this extension weights corresponding to the following additional
+-- splines can be selected for cubic filtered sampling and blits:
+--
+-- -   Zero Tangent Cardinal
+--
+-- -   B-Spline
+--
+-- -   Mitchell-Netravali
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2':
+--
+--     -   'BlitImageCubicWeightsInfoQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCubicWeightsFeaturesQCOM'
+--
+-- -   Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo':
+--
+--     -   'SamplerCubicWeightsCreateInfoQCOM'
+--
+-- == New Enums
+--
+-- -   'CubicFilterWeightsQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME'
+--
+-- -   'QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-06-23 (jleger)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'BlitImageCubicWeightsInfoQCOM', 'CubicFilterWeightsQCOM',
+-- 'PhysicalDeviceCubicWeightsFeaturesQCOM',
+-- 'SamplerCubicWeightsCreateInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weights Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_filter_cubic_weights  ( PhysicalDeviceCubicWeightsFeaturesQCOM(..)
+                                                       , SamplerCubicWeightsCreateInfoQCOM(..)
+                                                       , BlitImageCubicWeightsInfoQCOM(..)
+                                                       , CubicFilterWeightsQCOM( CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
+                                                                               , CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM
+                                                                               , CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM
+                                                                               , CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM
+                                                                               , ..
+                                                                               )
+                                                       , QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION
+                                                       , pattern QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION
+                                                       , QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME
+                                                       , pattern QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME
+                                                       ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+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 Data.Int (Int32)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM))
+-- | VkPhysicalDeviceCubicWeightsFeaturesQCOM - Structure describing cubic
+-- weight selection features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following feature:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceCubicWeightsFeaturesQCOM' 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. 'PhysicalDeviceCubicWeightsFeaturesQCOM' /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_QCOM_filter_cubic_weights VK_QCOM_filter_cubic_weights>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceCubicWeightsFeaturesQCOM = PhysicalDeviceCubicWeightsFeaturesQCOM
+  { -- | #features-filter-cubic-weight-selection# @selectableCubicWeights@
+    -- indicates that the implementation supports the selection of filter cubic
+    -- weights.
+    selectableCubicWeights :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceCubicWeightsFeaturesQCOM)
+#endif
+deriving instance Show PhysicalDeviceCubicWeightsFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceCubicWeightsFeaturesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceCubicWeightsFeaturesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (selectableCubicWeights))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceCubicWeightsFeaturesQCOM where
+  peekCStruct p = do
+    selectableCubicWeights <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceCubicWeightsFeaturesQCOM
+             (bool32ToBool selectableCubicWeights)
+
+instance Storable PhysicalDeviceCubicWeightsFeaturesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceCubicWeightsFeaturesQCOM where
+  zero = PhysicalDeviceCubicWeightsFeaturesQCOM
+           zero
+
+
+-- | VkSamplerCubicWeightsCreateInfoQCOM - Structure specifying sampler cubic
+-- weights
+--
+-- = Description
+--
+-- If the @pNext@ chain of 'Vulkan.Core10.Sampler.SamplerCreateInfo'
+-- includes a 'SamplerCubicWeightsCreateInfoQCOM' structure, then that
+-- structure specifies which cubic weights are used.
+--
+-- If that structure is not present, @cubicWeights@ is considered to be
+-- 'CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weights VK_QCOM_filter_cubic_weights>,
+-- 'CubicFilterWeightsQCOM',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data SamplerCubicWeightsCreateInfoQCOM = SamplerCubicWeightsCreateInfoQCOM
+  { -- | @cubicWeights@ is a 'CubicFilterWeightsQCOM' value controlling which
+    -- cubic weights are used.
+    --
+    -- #VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameter#
+    -- @cubicWeights@ /must/ be a valid 'CubicFilterWeightsQCOM' value
+    cubicWeights :: CubicFilterWeightsQCOM }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SamplerCubicWeightsCreateInfoQCOM)
+#endif
+deriving instance Show SamplerCubicWeightsCreateInfoQCOM
+
+instance ToCStruct SamplerCubicWeightsCreateInfoQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SamplerCubicWeightsCreateInfoQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (cubicWeights)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (zero)
+    f
+
+instance FromCStruct SamplerCubicWeightsCreateInfoQCOM where
+  peekCStruct p = do
+    cubicWeights <- peek @CubicFilterWeightsQCOM ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM))
+    pure $ SamplerCubicWeightsCreateInfoQCOM
+             cubicWeights
+
+instance Storable SamplerCubicWeightsCreateInfoQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SamplerCubicWeightsCreateInfoQCOM where
+  zero = SamplerCubicWeightsCreateInfoQCOM
+           zero
+
+
+-- | VkBlitImageCubicWeightsInfoQCOM - Structure specifying image blit cubic
+-- weight info
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weights VK_QCOM_filter_cubic_weights>,
+-- 'CubicFilterWeightsQCOM',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data BlitImageCubicWeightsInfoQCOM = BlitImageCubicWeightsInfoQCOM
+  { -- | @cubicWeights@ is a 'CubicFilterWeightsQCOM' value controlling cubic
+    -- filter weights for the blit.
+    --
+    -- #VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameter#
+    -- @cubicWeights@ /must/ be a valid 'CubicFilterWeightsQCOM' value
+    cubicWeights :: CubicFilterWeightsQCOM }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (BlitImageCubicWeightsInfoQCOM)
+#endif
+deriving instance Show BlitImageCubicWeightsInfoQCOM
+
+instance ToCStruct BlitImageCubicWeightsInfoQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p BlitImageCubicWeightsInfoQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (cubicWeights)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (zero)
+    f
+
+instance FromCStruct BlitImageCubicWeightsInfoQCOM where
+  peekCStruct p = do
+    cubicWeights <- peek @CubicFilterWeightsQCOM ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM))
+    pure $ BlitImageCubicWeightsInfoQCOM
+             cubicWeights
+
+instance Storable BlitImageCubicWeightsInfoQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero BlitImageCubicWeightsInfoQCOM where
+  zero = BlitImageCubicWeightsInfoQCOM
+           zero
+
+
+-- | VkCubicFilterWeightsQCOM - Specify cubic weights for texture filtering
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weights VK_QCOM_filter_cubic_weights>,
+-- 'BlitImageCubicWeightsInfoQCOM', 'SamplerCubicWeightsCreateInfoQCOM'
+newtype CubicFilterWeightsQCOM = CubicFilterWeightsQCOM Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' specifies Catmull-Rom weights.
+pattern CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = CubicFilterWeightsQCOM 0
+
+-- | 'CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM' specifies Zero Tangent
+-- Cardinal weights.
+pattern CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = CubicFilterWeightsQCOM 1
+
+-- | 'CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM' specifies B-Spline weights.
+pattern CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = CubicFilterWeightsQCOM 2
+
+-- | 'CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM' specifies
+-- Mitchell-Netravali weights.
+pattern CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = CubicFilterWeightsQCOM 3
+
+{-# COMPLETE
+  CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
+  , CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM
+  , CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM
+  , CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM ::
+    CubicFilterWeightsQCOM
+  #-}
+
+conNameCubicFilterWeightsQCOM :: String
+conNameCubicFilterWeightsQCOM = "CubicFilterWeightsQCOM"
+
+enumPrefixCubicFilterWeightsQCOM :: String
+enumPrefixCubicFilterWeightsQCOM = "CUBIC_FILTER_WEIGHTS_"
+
+showTableCubicFilterWeightsQCOM :: [(CubicFilterWeightsQCOM, String)]
+showTableCubicFilterWeightsQCOM =
+  [
+    ( CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
+    , "CATMULL_ROM_QCOM"
+    )
+  ,
+    ( CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM
+    , "ZERO_TANGENT_CARDINAL_QCOM"
+    )
+  ,
+    ( CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM
+    , "B_SPLINE_QCOM"
+    )
+  ,
+    ( CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM
+    , "MITCHELL_NETRAVALI_QCOM"
+    )
+  ]
+
+instance Show CubicFilterWeightsQCOM where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixCubicFilterWeightsQCOM
+      showTableCubicFilterWeightsQCOM
+      conNameCubicFilterWeightsQCOM
+      (\(CubicFilterWeightsQCOM x) -> x)
+      (showsPrec 11)
+
+instance Read CubicFilterWeightsQCOM where
+  readPrec =
+    enumReadPrec
+      enumPrefixCubicFilterWeightsQCOM
+      showTableCubicFilterWeightsQCOM
+      conNameCubicFilterWeightsQCOM
+      CubicFilterWeightsQCOM
+
+type QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION"
+pattern QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION :: forall a . Integral a => a
+pattern QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION = 1
+
+
+type QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME = "VK_QCOM_filter_cubic_weights"
+
+-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME"
+pattern QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME = "VK_QCOM_filter_cubic_weights"
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot
@@ -0,0 +1,150 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_filter_cubic_weights - device extension
+--
+-- == VK_QCOM_filter_cubic_weights
+--
+-- [__Name String__]
+--     @VK_QCOM_filter_cubic_weights@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     520
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>
+--
+-- [__Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_filter_cubic_weights] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_filter_cubic_weights extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-06-23
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+--     -   Jonathan Wicks, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension extends cubic filtering by adding the ability to select a
+-- set of weights. Without this extension, the weights used in cubic
+-- filtering are limited to those corresponding to a Catmull-Rom spline.
+-- This extension adds support for 3 additional spline weights.
+--
+-- This extension adds a new structure that /can/ be added to the @pNext@
+-- chain of 'Vulkan.Core10.Sampler.SamplerCreateInfo' that /can/ be used to
+-- specify which set of cubic weights are used in cubic filtering. A
+-- similar structure can be added to the @pNext@ chain of
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2' to
+-- specify cubic weights used in a blit operation.
+--
+-- With this extension weights corresponding to the following additional
+-- splines can be selected for cubic filtered sampling and blits:
+--
+-- -   Zero Tangent Cardinal
+--
+-- -   B-Spline
+--
+-- -   Mitchell-Netravali
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2':
+--
+--     -   'BlitImageCubicWeightsInfoQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceCubicWeightsFeaturesQCOM'
+--
+-- -   Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo':
+--
+--     -   'SamplerCubicWeightsCreateInfoQCOM'
+--
+-- == New Enums
+--
+-- -   'CubicFilterWeightsQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME'
+--
+-- -   'QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-06-23 (jleger)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'BlitImageCubicWeightsInfoQCOM', 'CubicFilterWeightsQCOM',
+-- 'PhysicalDeviceCubicWeightsFeaturesQCOM',
+-- 'SamplerCubicWeightsCreateInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weights Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_filter_cubic_weights  ( BlitImageCubicWeightsInfoQCOM
+                                                       , PhysicalDeviceCubicWeightsFeaturesQCOM
+                                                       , SamplerCubicWeightsCreateInfoQCOM
+                                                       ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data BlitImageCubicWeightsInfoQCOM
+
+instance ToCStruct BlitImageCubicWeightsInfoQCOM
+instance Show BlitImageCubicWeightsInfoQCOM
+
+instance FromCStruct BlitImageCubicWeightsInfoQCOM
+
+
+data PhysicalDeviceCubicWeightsFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceCubicWeightsFeaturesQCOM
+instance Show PhysicalDeviceCubicWeightsFeaturesQCOM
+
+instance FromCStruct PhysicalDeviceCubicWeightsFeaturesQCOM
+
+
+data SamplerCubicWeightsCreateInfoQCOM
+
+instance ToCStruct SamplerCubicWeightsCreateInfoQCOM
+instance Show SamplerCubicWeightsCreateInfoQCOM
+
+instance FromCStruct SamplerCubicWeightsCreateInfoQCOM
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs
--- a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
@@ -296,7 +299,7 @@
 -- Offset values specified for any subpass that is not the last subpass in
 -- the render pass are ignored. If the
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo'::@pNext@
--- chain for the last subpass of a renderpass does not include
+-- chain for the last subpass of a render pass does not include
 -- 'SubpassFragmentDensityMapOffsetEndInfoQCOM', or if
 -- @fragmentDensityOffsetCount@ is zero, then the offset (0,0) is used for
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>.
diff --git a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --     and
diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs
--- a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
 --
@@ -53,7 +56,7 @@
 -- 3D graphics to UI and from composition to compute applications. Simple
 -- scaling and filtering can be done with bilinear filtering, which comes
 -- for free during texture sampling. However, as screen sizes get larger
--- and more use-cases rely on GPU such as camera and video post-processing
+-- and more use cases rely on GPU such as camera and video post-processing
 -- needs, there is increasing demand for GPU to support higher order
 -- filtering and other advanced image processing.
 --
@@ -386,7 +389,8 @@
 --
 -- = Members
 --
--- -   @sType@ is the type of this structure.
+-- -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value
+--     identifying this structure.
 --
 -- -   @pNext@ is @NULL@ or a pointer to a structure extending this
 --     structure.
diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
 --
@@ -53,7 +56,7 @@
 -- 3D graphics to UI and from composition to compute applications. Simple
 -- scaling and filtering can be done with bilinear filtering, which comes
 -- for free during texture sampling. However, as screen sizes get larger
--- and more use-cases rely on GPU such as camera and video post-processing
+-- and more use cases rely on GPU such as camera and video post-processing
 -- needs, there is increasing demand for GPU to support higher order
 -- filtering and other advanced image processing.
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs
@@ -0,0 +1,535 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_image_processing2 - device extension
+--
+-- == VK_QCOM_image_processing2
+--
+-- [__Name String__]
+--     @VK_QCOM_image_processing2@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     519
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing VK_QCOM_image_processing>
+--
+-- [__Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_image_processing2] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_image_processing2 extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-03-10
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/QCOM/SPV_QCOM_image_processing2.html SPV_QCOM_image_processing2>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing2.txt GL_QCOM_image_processing2>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension enables support for the SPIR-V @TextureBlockMatch2QCOM@
+-- capability. It builds on the functionality of QCOM_image_processing with
+-- the addition of 4 new image processing operations.
+--
+-- -   The @opImageBlockMatchWindowSADQCOM@\` SPIR-V instruction builds
+--     upon the functionality of @opImageBlockMatchSADQCOM@\` by repeatedly
+--     performing block match operations across a 2D window. The “2D
+--     windowExtent” and “compareMode” are are specified by
+--     'SamplerBlockMatchWindowCreateInfoQCOM' in the sampler used to
+--     create the /target image/. Like @OpImageBlockMatchSADQCOM@,
+--     @opImageBlockMatchWindowSADQCOM@ computes an error metric, that
+--     describes whether a block of texels in the /target image/ matches a
+--     corresponding block of texels in the /reference image/. Unlike
+--     @OpImageBlockMatchSADQCOM@, this instruction computes an error
+--     metric at each (X,Y) location within the 2D window and returns
+--     either the minimum or maximum error. The instruction only supports
+--     single-component formats. Refer to the pseudocode below for details.
+--
+-- -   The @opImageBlockMatchWindowSSDQCOM@ follows the same pattern,
+--     computing the SSD error metric at each location within the 2D
+--     window.
+--
+-- -   The @opImageBlockMatchGatherSADQCOM@ builds upon
+--     @OpImageBlockMatchSADQCOM@. This instruction computes an error
+--     metric, that describes whether a block of texels in the /target
+--     image/ matches a corresponding block of texels in the /reference
+--     image/. The instruction computes the SAD error metric at 4 texel
+--     offsets and returns the error metric for each offset in the
+--     X,Y,Z,and W components. The instruction only supports
+--     single-component texture formats. Refer to the pseudocode below for
+--     details.
+--
+-- -   The @opImageBlockMatchGatherSSDQCOM@ follows the same pattern,
+--     computing the SSD error metric for 4 offsets.
+--
+-- Each of the above 4 image processing instructions are limited to
+-- single-component formats.
+--
+-- Below is the pseudocode for GLSL built-in function
+-- @textureWindowBlockMatchSADQCOM@. The pseudocode for
+-- @textureWindowBlockMatchSSD@ is identical other than replacing all
+-- instances of @\"SAD\"@ with @\"SSD\"@.
+--
+-- > vec4 textureBlockMatchWindowSAD( sampler2D target,
+-- >                                  uvec2 targetCoord,
+-- >                                  samler2D reference,
+-- >                                  uvec2 refCoord,
+-- >                                  uvec2 blocksize) {
+-- >     // compareMode (MIN or MAX) comes from the vkSampler associated with `target`
+-- >     // uvec2 window  comes from the vkSampler associated with `target`
+-- >     minSAD = INF;
+-- >     maxSAD = -INF;
+-- >     uvec2 minCoord;
+-- >     uvec2 maxCoord;
+-- >
+-- >     for (uint x=0, x < window.width; x++) {
+-- >         for (uint y=0; y < window.height; y++) {
+-- >             float SAD = textureBlockMatchSAD(target,
+-- >                                             targetCoord + uvec2(x, y),
+-- >                                             reference,
+-- >                                             refCoord,
+-- >                                             blocksize).x;
+-- >             // Note: the below comparison operator will produce undefined results
+-- >             // if SAD is a denorm value.
+-- >             if (SAD < minSAD) {
+-- >                 minSAD = SAD;
+-- >                 minCoord = uvec2(x,y);
+-- >             }
+-- >             if (SAD > maxSAD) {
+-- >                 maxSAD = SAD;
+-- >                 maxCoord = uvec2(x,y);
+-- >             }
+-- >         }
+-- >     }
+-- >     if (compareMode=MIN) {
+-- >         return vec4(minSAD, minCoord.x, minCoord.y, 0.0);
+-- >     } else {
+-- >         return vec4(maxSAD, maxCoord.x, maxCoord.y, 0.0);
+-- >     }
+-- > }
+--
+-- Below is the pseudocode for @textureBlockMatchGatherSADQCOM@. The
+-- pseudocode for @textureBlockMatchGatherSSD@ follows an identical
+-- pattern.
+--
+-- > vec4 textureBlockMatchGatherSAD( sampler2D target,
+-- >                                  uvec2 targetCoord,
+-- >                                  samler2D reference,
+-- >                                  uvec2 refCoord,
+-- >                                  uvec2 blocksize) {
+-- >     vec4 out;
+-- >     for (uint x=0, x<4; x++) {
+-- >             float SAD = textureBlockMatchSAD(target,
+-- >                                             targetCoord + uvec2(x, 0),
+-- >                                             reference,
+-- >                                             refCoord,
+-- >                                             blocksize).x;
+-- >             out[x] = SAD;
+-- >     }
+-- >     return out;
+-- > }
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceImageProcessing2FeaturesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceImageProcessing2PropertiesQCOM'
+--
+-- -   Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo':
+--
+--     -   'SamplerBlockMatchWindowCreateInfoQCOM'
+--
+-- == New Enums
+--
+-- -   'BlockMatchWindowCompareModeQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME'
+--
+-- -   'QCOM_IMAGE_PROCESSING_2_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM'
+--
+-- == Issues
+--
+-- 1) What is the precision of the min\/max comparison checks?
+--
+-- __RESOLVED__: Intermediate computations for the new operations are
+-- performed at 16-bit floating point precision. If the value of
+-- @\"float SAD\"@ in the above code sample is a 16-bit denorm value, then
+-- behavior of the MIN\/MAX comparison is undefined.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-03-10 (Jeff Leger)
+--
+-- == See Also
+--
+-- 'BlockMatchWindowCompareModeQCOM',
+-- 'PhysicalDeviceImageProcessing2FeaturesQCOM',
+-- 'PhysicalDeviceImageProcessing2PropertiesQCOM',
+-- 'SamplerBlockMatchWindowCreateInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_image_processing2 Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_image_processing2  ( PhysicalDeviceImageProcessing2FeaturesQCOM(..)
+                                                    , PhysicalDeviceImageProcessing2PropertiesQCOM(..)
+                                                    , SamplerBlockMatchWindowCreateInfoQCOM(..)
+                                                    , BlockMatchWindowCompareModeQCOM( BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM
+                                                                                     , BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM
+                                                                                     , ..
+                                                                                     )
+                                                    , QCOM_IMAGE_PROCESSING_2_SPEC_VERSION
+                                                    , pattern QCOM_IMAGE_PROCESSING_2_SPEC_VERSION
+                                                    , QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME
+                                                    , pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME
+                                                    ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+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 Data.Int (Int32)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.FundamentalTypes (Extent2D)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM))
+-- | VkPhysicalDeviceImageProcessing2FeaturesQCOM - Structure describing
+-- image processing features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceImageProcessing2FeaturesQCOM' 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. 'PhysicalDeviceImageProcessing2FeaturesQCOM' /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_QCOM_image_processing2 VK_QCOM_image_processing2>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceImageProcessing2FeaturesQCOM = PhysicalDeviceImageProcessing2FeaturesQCOM
+  { -- | #features-textureBlockMatch2# @textureBlockMatch2@ indicates that the
+    -- implementation supports shader modules that declare the
+    -- @TextureBlockMatch2QCOM@ capability.
+    textureBlockMatch2 :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceImageProcessing2FeaturesQCOM)
+#endif
+deriving instance Show PhysicalDeviceImageProcessing2FeaturesQCOM
+
+instance ToCStruct PhysicalDeviceImageProcessing2FeaturesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceImageProcessing2FeaturesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureBlockMatch2))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceImageProcessing2FeaturesQCOM where
+  peekCStruct p = do
+    textureBlockMatch2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceImageProcessing2FeaturesQCOM
+             (bool32ToBool textureBlockMatch2)
+
+instance Storable PhysicalDeviceImageProcessing2FeaturesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceImageProcessing2FeaturesQCOM where
+  zero = PhysicalDeviceImageProcessing2FeaturesQCOM
+           zero
+
+
+-- | VkPhysicalDeviceImageProcessing2PropertiesQCOM - Structure containing
+-- image processing2 properties
+--
+-- = Description
+--
+-- -   #limits-blockmatch-maxWindowExtent#@maxBlockMatchWindow@ is a
+--     'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest
+--     dimensions (@width@ and @height@) that /can/ be specified for the
+--     block match window.
+--
+-- If the 'PhysicalDeviceImageProcessing2PropertiesQCOM' 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.
+--
+-- These are properties of the image processing2 information of a physical
+-- device.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2 VK_QCOM_image_processing2>,
+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceImageProcessing2PropertiesQCOM = PhysicalDeviceImageProcessing2PropertiesQCOM
+  { -- No documentation found for Nested "VkPhysicalDeviceImageProcessing2PropertiesQCOM" "maxBlockMatchWindow"
+    maxBlockMatchWindow :: Extent2D }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceImageProcessing2PropertiesQCOM)
+#endif
+deriving instance Show PhysicalDeviceImageProcessing2PropertiesQCOM
+
+instance ToCStruct PhysicalDeviceImageProcessing2PropertiesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceImageProcessing2PropertiesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (maxBlockMatchWindow)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PhysicalDeviceImageProcessing2PropertiesQCOM where
+  peekCStruct p = do
+    maxBlockMatchWindow <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))
+    pure $ PhysicalDeviceImageProcessing2PropertiesQCOM
+             maxBlockMatchWindow
+
+instance Storable PhysicalDeviceImageProcessing2PropertiesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceImageProcessing2PropertiesQCOM where
+  zero = PhysicalDeviceImageProcessing2PropertiesQCOM
+           zero
+
+
+-- | VkSamplerBlockMatchWindowCreateInfoQCOM - Structure specifying the block
+-- match window parameters
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2 VK_QCOM_image_processing2>,
+-- 'BlockMatchWindowCompareModeQCOM',
+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data SamplerBlockMatchWindowCreateInfoQCOM = SamplerBlockMatchWindowCreateInfoQCOM
+  { -- | @windowExtent@ is a 'Vulkan.Core10.FundamentalTypes.Extent2D' specifying
+    -- a the width and height of the block match window.
+    windowExtent :: Extent2D
+  , -- | @windowCompareMode@ is a 'BlockMatchWindowCompareModeQCOM' specifying
+    -- the compare mode.
+    --
+    -- #VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameter#
+    -- @windowCompareMode@ /must/ be a valid 'BlockMatchWindowCompareModeQCOM'
+    -- value
+    windowCompareMode :: BlockMatchWindowCompareModeQCOM
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SamplerBlockMatchWindowCreateInfoQCOM)
+#endif
+deriving instance Show SamplerBlockMatchWindowCreateInfoQCOM
+
+instance ToCStruct SamplerBlockMatchWindowCreateInfoQCOM where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SamplerBlockMatchWindowCreateInfoQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (windowExtent)
+    poke ((p `plusPtr` 24 :: Ptr BlockMatchWindowCompareModeQCOM)) (windowCompareMode)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr BlockMatchWindowCompareModeQCOM)) (zero)
+    f
+
+instance FromCStruct SamplerBlockMatchWindowCreateInfoQCOM where
+  peekCStruct p = do
+    windowExtent <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))
+    windowCompareMode <- peek @BlockMatchWindowCompareModeQCOM ((p `plusPtr` 24 :: Ptr BlockMatchWindowCompareModeQCOM))
+    pure $ SamplerBlockMatchWindowCreateInfoQCOM
+             windowExtent windowCompareMode
+
+instance Storable SamplerBlockMatchWindowCreateInfoQCOM where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SamplerBlockMatchWindowCreateInfoQCOM where
+  zero = SamplerBlockMatchWindowCreateInfoQCOM
+           zero
+           zero
+
+
+-- | VkBlockMatchWindowCompareModeQCOM - Block match window compare modes
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2 VK_QCOM_image_processing2>,
+-- 'SamplerBlockMatchWindowCreateInfoQCOM'
+newtype BlockMatchWindowCompareModeQCOM = BlockMatchWindowCompareModeQCOM Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM' specifies that windowed block
+-- match operations return the minimum error within the window.
+pattern BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = BlockMatchWindowCompareModeQCOM 0
+
+-- | 'BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM' specifies that windowed block
+-- match operations return the maximum error within the window.
+pattern BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = BlockMatchWindowCompareModeQCOM 1
+
+{-# COMPLETE
+  BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM
+  , BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM ::
+    BlockMatchWindowCompareModeQCOM
+  #-}
+
+conNameBlockMatchWindowCompareModeQCOM :: String
+conNameBlockMatchWindowCompareModeQCOM = "BlockMatchWindowCompareModeQCOM"
+
+enumPrefixBlockMatchWindowCompareModeQCOM :: String
+enumPrefixBlockMatchWindowCompareModeQCOM = "BLOCK_MATCH_WINDOW_COMPARE_MODE_M"
+
+showTableBlockMatchWindowCompareModeQCOM :: [(BlockMatchWindowCompareModeQCOM, String)]
+showTableBlockMatchWindowCompareModeQCOM =
+  [
+    ( BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM
+    , "IN_QCOM"
+    )
+  ,
+    ( BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM
+    , "AX_QCOM"
+    )
+  ]
+
+instance Show BlockMatchWindowCompareModeQCOM where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixBlockMatchWindowCompareModeQCOM
+      showTableBlockMatchWindowCompareModeQCOM
+      conNameBlockMatchWindowCompareModeQCOM
+      (\(BlockMatchWindowCompareModeQCOM x) -> x)
+      (showsPrec 11)
+
+instance Read BlockMatchWindowCompareModeQCOM where
+  readPrec =
+    enumReadPrec
+      enumPrefixBlockMatchWindowCompareModeQCOM
+      showTableBlockMatchWindowCompareModeQCOM
+      conNameBlockMatchWindowCompareModeQCOM
+      BlockMatchWindowCompareModeQCOM
+
+type QCOM_IMAGE_PROCESSING_2_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION"
+pattern QCOM_IMAGE_PROCESSING_2_SPEC_VERSION :: forall a . Integral a => a
+pattern QCOM_IMAGE_PROCESSING_2_SPEC_VERSION = 1
+
+
+type QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME = "VK_QCOM_image_processing2"
+
+-- No documentation found for TopLevel "VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME"
+pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME = "VK_QCOM_image_processing2"
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot
@@ -0,0 +1,245 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_image_processing2 - device extension
+--
+-- == VK_QCOM_image_processing2
+--
+-- [__Name String__]
+--     @VK_QCOM_image_processing2@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     519
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing VK_QCOM_image_processing>
+--
+-- [__Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_image_processing2] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_image_processing2 extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-03-10
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/QCOM/SPV_QCOM_image_processing2.html SPV_QCOM_image_processing2>
+--
+--     -   This extension provides API support for
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing2.txt GL_QCOM_image_processing2>
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension enables support for the SPIR-V @TextureBlockMatch2QCOM@
+-- capability. It builds on the functionality of QCOM_image_processing with
+-- the addition of 4 new image processing operations.
+--
+-- -   The @opImageBlockMatchWindowSADQCOM@\` SPIR-V instruction builds
+--     upon the functionality of @opImageBlockMatchSADQCOM@\` by repeatedly
+--     performing block match operations across a 2D window. The “2D
+--     windowExtent” and “compareMode” are are specified by
+--     'SamplerBlockMatchWindowCreateInfoQCOM' in the sampler used to
+--     create the /target image/. Like @OpImageBlockMatchSADQCOM@,
+--     @opImageBlockMatchWindowSADQCOM@ computes an error metric, that
+--     describes whether a block of texels in the /target image/ matches a
+--     corresponding block of texels in the /reference image/. Unlike
+--     @OpImageBlockMatchSADQCOM@, this instruction computes an error
+--     metric at each (X,Y) location within the 2D window and returns
+--     either the minimum or maximum error. The instruction only supports
+--     single-component formats. Refer to the pseudocode below for details.
+--
+-- -   The @opImageBlockMatchWindowSSDQCOM@ follows the same pattern,
+--     computing the SSD error metric at each location within the 2D
+--     window.
+--
+-- -   The @opImageBlockMatchGatherSADQCOM@ builds upon
+--     @OpImageBlockMatchSADQCOM@. This instruction computes an error
+--     metric, that describes whether a block of texels in the /target
+--     image/ matches a corresponding block of texels in the /reference
+--     image/. The instruction computes the SAD error metric at 4 texel
+--     offsets and returns the error metric for each offset in the
+--     X,Y,Z,and W components. The instruction only supports
+--     single-component texture formats. Refer to the pseudocode below for
+--     details.
+--
+-- -   The @opImageBlockMatchGatherSSDQCOM@ follows the same pattern,
+--     computing the SSD error metric for 4 offsets.
+--
+-- Each of the above 4 image processing instructions are limited to
+-- single-component formats.
+--
+-- Below is the pseudocode for GLSL built-in function
+-- @textureWindowBlockMatchSADQCOM@. The pseudocode for
+-- @textureWindowBlockMatchSSD@ is identical other than replacing all
+-- instances of @\"SAD\"@ with @\"SSD\"@.
+--
+-- > vec4 textureBlockMatchWindowSAD( sampler2D target,
+-- >                                  uvec2 targetCoord,
+-- >                                  samler2D reference,
+-- >                                  uvec2 refCoord,
+-- >                                  uvec2 blocksize) {
+-- >     // compareMode (MIN or MAX) comes from the vkSampler associated with `target`
+-- >     // uvec2 window  comes from the vkSampler associated with `target`
+-- >     minSAD = INF;
+-- >     maxSAD = -INF;
+-- >     uvec2 minCoord;
+-- >     uvec2 maxCoord;
+-- >
+-- >     for (uint x=0, x < window.width; x++) {
+-- >         for (uint y=0; y < window.height; y++) {
+-- >             float SAD = textureBlockMatchSAD(target,
+-- >                                             targetCoord + uvec2(x, y),
+-- >                                             reference,
+-- >                                             refCoord,
+-- >                                             blocksize).x;
+-- >             // Note: the below comparison operator will produce undefined results
+-- >             // if SAD is a denorm value.
+-- >             if (SAD < minSAD) {
+-- >                 minSAD = SAD;
+-- >                 minCoord = uvec2(x,y);
+-- >             }
+-- >             if (SAD > maxSAD) {
+-- >                 maxSAD = SAD;
+-- >                 maxCoord = uvec2(x,y);
+-- >             }
+-- >         }
+-- >     }
+-- >     if (compareMode=MIN) {
+-- >         return vec4(minSAD, minCoord.x, minCoord.y, 0.0);
+-- >     } else {
+-- >         return vec4(maxSAD, maxCoord.x, maxCoord.y, 0.0);
+-- >     }
+-- > }
+--
+-- Below is the pseudocode for @textureBlockMatchGatherSADQCOM@. The
+-- pseudocode for @textureBlockMatchGatherSSD@ follows an identical
+-- pattern.
+--
+-- > vec4 textureBlockMatchGatherSAD( sampler2D target,
+-- >                                  uvec2 targetCoord,
+-- >                                  samler2D reference,
+-- >                                  uvec2 refCoord,
+-- >                                  uvec2 blocksize) {
+-- >     vec4 out;
+-- >     for (uint x=0, x<4; x++) {
+-- >             float SAD = textureBlockMatchSAD(target,
+-- >                                             targetCoord + uvec2(x, 0),
+-- >                                             reference,
+-- >                                             refCoord,
+-- >                                             blocksize).x;
+-- >             out[x] = SAD;
+-- >     }
+-- >     return out;
+-- > }
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceImageProcessing2FeaturesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceImageProcessing2PropertiesQCOM'
+--
+-- -   Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo':
+--
+--     -   'SamplerBlockMatchWindowCreateInfoQCOM'
+--
+-- == New Enums
+--
+-- -   'BlockMatchWindowCompareModeQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME'
+--
+-- -   'QCOM_IMAGE_PROCESSING_2_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM'
+--
+-- == Issues
+--
+-- 1) What is the precision of the min\/max comparison checks?
+--
+-- __RESOLVED__: Intermediate computations for the new operations are
+-- performed at 16-bit floating point precision. If the value of
+-- @\"float SAD\"@ in the above code sample is a 16-bit denorm value, then
+-- behavior of the MIN\/MAX comparison is undefined.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-03-10 (Jeff Leger)
+--
+-- == See Also
+--
+-- 'BlockMatchWindowCompareModeQCOM',
+-- 'PhysicalDeviceImageProcessing2FeaturesQCOM',
+-- 'PhysicalDeviceImageProcessing2PropertiesQCOM',
+-- 'SamplerBlockMatchWindowCreateInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_image_processing2 Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_image_processing2  ( PhysicalDeviceImageProcessing2FeaturesQCOM
+                                                    , PhysicalDeviceImageProcessing2PropertiesQCOM
+                                                    , SamplerBlockMatchWindowCreateInfoQCOM
+                                                    ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceImageProcessing2FeaturesQCOM
+
+instance ToCStruct PhysicalDeviceImageProcessing2FeaturesQCOM
+instance Show PhysicalDeviceImageProcessing2FeaturesQCOM
+
+instance FromCStruct PhysicalDeviceImageProcessing2FeaturesQCOM
+
+
+data PhysicalDeviceImageProcessing2PropertiesQCOM
+
+instance ToCStruct PhysicalDeviceImageProcessing2PropertiesQCOM
+instance Show PhysicalDeviceImageProcessing2PropertiesQCOM
+
+instance FromCStruct PhysicalDeviceImageProcessing2PropertiesQCOM
+
+
+data SamplerBlockMatchWindowCreateInfoQCOM
+
+instance ToCStruct SamplerBlockMatchWindowCreateInfoQCOM
+instance Show SamplerBlockMatchWindowCreateInfoQCOM
+
+instance FromCStruct SamplerBlockMatchWindowCreateInfoQCOM
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs
--- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Leger
@@ -46,7 +49,7 @@
 --
 -- == Description
 --
--- Certain use-cases (e.g., side-by-side VR rendering) use multiview and
+-- Certain use cases (e.g., side-by-side VR rendering) use multiview and
 -- render to distinct regions of the framebuffer for each view. On some
 -- implementations, there may be a performance benefit for providing
 -- per-view render areas to the implementation. Such per-view render areas
diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Jeff Leger
@@ -46,7 +49,7 @@
 --
 -- == Description
 --
--- Certain use-cases (e.g., side-by-side VR rendering) use multiview and
+-- Certain use cases (e.g., side-by-side VR rendering) use multiview and
 -- render to distinct regions of the framebuffer for each view. On some
 -- implementations, there may be a performance benefit for providing
 -- per-view render areas to the implementation. Such per-view render areas
diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs
--- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -49,7 +52,7 @@
 --
 -- == Description
 --
--- Certain use-cases for multiview have a need for specifying a separate
+-- Certain use cases for multiview have a need for specifying a separate
 -- viewport and scissor for each view, without using shader-based viewport
 -- indexing as introduced with @VK_EXT_shader_viewport_index_layer@.
 --
@@ -58,7 +61,7 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
 -- feature is enabled and if the last pre-rasterization shader entry
 -- point’s interface does not use the @ViewportIndex@ built-in decoration,
--- then each view of a multiview renderpass instance will use a viewport
+-- then each view of a multiview render pass instance will use a viewport
 -- and scissor index equal to the @ViewIndex@.
 --
 -- == New Structures
@@ -83,14 +86,14 @@
 --
 -- 1) Is is possible to enable\/disable the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
--- feature for individual renderpass instances?
+-- feature for individual render pass instances?
 --
 -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled
--- during vkCreateDevice, then all created renderpass instances (including
--- dynamic renderpasses from @VK_KHR_dynamic_rendering@) and all created
+-- during vkCreateDevice, then all created render pass instances (including
+-- dynamic render passes from @VK_KHR_dynamic_rendering@) and all created
 -- VkPipelines will have the feature enabled. This approach was chosen
--- because it simplifies application code and there is no known use-case
--- enable\/disable the feature for individual renderpasses or pipelines.
+-- because it simplifies application code and there is no known use case
+-- enable\/disable the feature for individual render passes or pipelines.
 --
 -- 2) When this extension is used, is the value of @ViewportIndex@
 -- implicitly written by the last pre-rasterization shader stage and can
diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -49,7 +52,7 @@
 --
 -- == Description
 --
--- Certain use-cases for multiview have a need for specifying a separate
+-- Certain use cases for multiview have a need for specifying a separate
 -- viewport and scissor for each view, without using shader-based viewport
 -- indexing as introduced with @VK_EXT_shader_viewport_index_layer@.
 --
@@ -58,7 +61,7 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
 -- feature is enabled and if the last pre-rasterization shader entry
 -- point’s interface does not use the @ViewportIndex@ built-in decoration,
--- then each view of a multiview renderpass instance will use a viewport
+-- then each view of a multiview render pass instance will use a viewport
 -- and scissor index equal to the @ViewIndex@.
 --
 -- == New Structures
@@ -83,14 +86,14 @@
 --
 -- 1) Is is possible to enable\/disable the
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewports multiviewPerViewViewports>
--- feature for individual renderpass instances?
+-- feature for individual render pass instances?
 --
 -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled
--- during vkCreateDevice, then all created renderpass instances (including
--- dynamic renderpasses from @VK_KHR_dynamic_rendering@) and all created
+-- during vkCreateDevice, then all created render pass instances (including
+-- dynamic render passes from @VK_KHR_dynamic_rendering@) and all created
 -- VkPipelines will have the feature enabled. This approach was chosen
--- because it simplifies application code and there is no known use-case
--- enable\/disable the feature for individual renderpasses or pipelines.
+-- because it simplifies application code and there is no known use case
+-- enable\/disable the feature for individual render passes or pipelines.
 --
 -- 2) When this extension is used, is the value of @ViewportIndex@
 -- implicitly written by the last pre-rasterization shader stage and can
diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs
--- a/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     4
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Bill Licea-Kane
diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs
--- a/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     2
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__; __Contact__]
 --
 --     -   Bill Licea-Kane
@@ -33,7 +36,7 @@
 --
 -- == Description
 --
--- Renderpass attachments /can/ be read-only for the duration of a render
+-- Render pass attachments /can/ be read-only for the duration of a render
 -- pass.
 --
 -- Examples include input attachments and depth attachments where depth
diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs
--- a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -192,12 +195,12 @@
 --
 -- 2) Should the extension support only rotations (e.g. 90, 180,
 -- 270-degrees), or also mirror transforms (e.g. vertical flips)? Mobile
--- use-cases only require rotation. Other display systems such as
+-- use cases only require rotation. Other display systems such as
 -- projectors might require a flipped transform.
 --
 -- __RESOLVED__: In this version of the extension, the functionality is
--- restricted to 90, 180, and 270-degree rotations to address mobile
--- use-cases.
+-- restricted to 90, 180, and 270-degree rotations to address mobile use
+-- cases.
 --
 -- 3) How does this extension interact with VK_EXT_fragment_density_map?
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     3
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -192,12 +195,12 @@
 --
 -- 2) Should the extension support only rotations (e.g. 90, 180,
 -- 270-degrees), or also mirror transforms (e.g. vertical flips)? Mobile
--- use-cases only require rotation. Other display systems such as
+-- use cases only require rotation. Other display systems such as
 -- projectors might require a flipped transform.
 --
 -- __RESOLVED__: In this version of the extension, the functionality is
--- restricted to 90, 180, and 270-degree rotations to address mobile
--- use-cases.
+-- restricted to 90, 180, and 270-degree rotations to address mobile use
+-- cases.
 --
 -- 3) How does this extension interact with VK_EXT_fragment_density_map?
 --
diff --git a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs
--- a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -72,7 +75,7 @@
 -- vkCmdCopyImage2KHR?
 --
 -- __RESOLVED__: No. Use of rotated vkCmdBlitImage2KHR can fully address
--- this use-case.
+-- this use case.
 --
 -- 3) Should this extension add a rotation capability to
 -- vkCmdResolveImage2KHR?
diff --git a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>
 --     and
@@ -72,7 +75,7 @@
 -- vkCmdCopyImage2KHR?
 --
 -- __RESOLVED__: No. Use of rotated vkCmdBlitImage2KHR can fully address
--- this use-case.
+-- this use case.
 --
 -- 3) Should this extension add a rotation capability to
 -- vkCmdResolveImage2KHR?
diff --git a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs
--- a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -60,8 +63,6 @@
 --
 -- == New Structures
 --
--- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'
---
 -- -   'TilePropertiesQCOM'
 --
 -- -   Extending
@@ -70,6 +71,12 @@
 --
 --     -   'PhysicalDeviceTilePropertiesFeaturesQCOM'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'
+--
 -- == New Enum Constants
 --
 -- -   'QCOM_TILE_PROPERTIES_EXTENSION_NAME'
@@ -90,9 +97,8 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTilePropertiesFeaturesQCOM',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',
--- 'TilePropertiesQCOM', 'getDynamicRenderingTilePropertiesQCOM',
+-- 'PhysicalDeviceTilePropertiesFeaturesQCOM', 'TilePropertiesQCOM',
+-- 'getDynamicRenderingTilePropertiesQCOM',
 -- 'getFramebufferTilePropertiesQCOM'
 --
 -- == Document Notes
diff --git a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -60,8 +63,6 @@
 --
 -- == New Structures
 --
--- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'
---
 -- -   'TilePropertiesQCOM'
 --
 -- -   Extending
@@ -70,6 +71,12 @@
 --
 --     -   'PhysicalDeviceTilePropertiesFeaturesQCOM'
 --
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>
+-- is supported:
+--
+-- -   'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'
+--
 -- == New Enum Constants
 --
 -- -   'QCOM_TILE_PROPERTIES_EXTENSION_NAME'
@@ -90,9 +97,8 @@
 --
 -- == See Also
 --
--- 'PhysicalDeviceTilePropertiesFeaturesQCOM',
--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',
--- 'TilePropertiesQCOM', 'getDynamicRenderingTilePropertiesQCOM',
+-- 'PhysicalDeviceTilePropertiesFeaturesQCOM', 'TilePropertiesQCOM',
+-- 'getDynamicRenderingTilePropertiesQCOM',
 -- 'getFramebufferTilePropertiesQCOM'
 --
 -- == Document Notes
diff --git a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs
@@ -0,0 +1,325 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_ycbcr_degamma - device extension
+--
+-- == VK_QCOM_ycbcr_degamma
+--
+-- [__Name String__]
+--     @VK_QCOM_ycbcr_degamma@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     521
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_ycbcr_degamma] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_ycbcr_degamma extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-07-31
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--     None
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm
+--
+--     -   Jonathan Wicks, Qualcomm
+--
+-- == Description
+--
+-- This extension allows implementations to expose support for “sRGB EOTF”
+-- also known as “sRGB degamma”, used in combination with images using
+-- 8-bit Y′CBCR formats. In addition, the degamma can be selectively
+-- applied to the Y (luma) or CrCb (chroma).
+--
+-- @VK_KHR_sampler_ycbcr_conversion@ adds support for Y′CBCR conversion,
+-- but allows texture sampling in a non-linear space which can cause
+-- artifacts. This extension allows implementations to expose sRGB degamma
+-- for Y′CBCR formats, which is performed during texture filtering,
+-- allowing texture filtering to operate in a linear space.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceYcbcrDegammaFeaturesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo':
+--
+--     -   'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_YCBCR_DEGAMMA_EXTENSION_NAME'
+--
+-- -   'QCOM_YCBCR_DEGAMMA_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM'
+--
+-- == Issues
+--
+-- 1) Which Y′CBCR formats support the degamma feature?
+--
+-- __RESOLVED__: For implementations that support the extension, each
+-- format that contains 8-bit R, G, and B components and supports either
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT'
+-- or
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT'
+-- must support degamma.
+--
+-- Since non-compressed Vulkan sRGB formats are already limited to 8-bit
+-- components, and since Adreno supports degamma for all 8bit Y′CBCR
+-- formats, this extension does not introduce a new VK_FORMAT_FEATURE* bit
+-- for the degamma feature.
+--
+-- 2) On which Y′CBCR components is the degamma applied?
+--
+-- __RESOLVED__: While degamma is expected to be applied to only the Y
+-- (luma) component, the extension provides the ability to selectively
+-- enable degamma for both the Y (luma) and\/or CbCr (chroma) components.
+--
+-- 3) Should degamma be enabled for the sampler object or for the image
+-- view object?
+--
+-- __RESOLVED__: Both. This extension extends
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- and the specification already requires that both sampler and view
+-- objects must be created with an /identical/
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- in their pNext chains.
+--
+-- 4) Why apply the “sRGB” transfer function directly to Y′CBCR data when
+-- it would be more correct to use the “ITU transfer function”, and do so
+-- only after the values have been converted into non-linear R’G’B\'?
+--
+-- __RESOLVED__: Y′CBCR is frequently stored according to standards (e.g.
+-- BT.601 and BT.709) that specify that the conversion between linear and
+-- non-linear should use the ITU Transfer function. The ITU transfer
+-- function is mathematically different from the sRGB transfer function and
+-- while sRGB and ITU define similar curves, the difference is significant.
+-- Performing the “sRGB degamma” prior to range expansion can introduce
+-- artifacts if the content uses
+-- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SAMPLER_YCBCR_RANGE_ITU_NARROW'
+-- encoding. Nevertheless, using sRGB can make sense for certain use-cases
+-- where camera YCbCr images are known to be encoded with sRGB (or a pure
+-- gamma 2.2) transfer function and are known to use full-range encoding.
+--
+-- For those use-cases, this extension leverages the GPU ability to enable
+-- sRGB degamma at little cost, and can improve quality because texture
+-- filtering is able to occur in linear space.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-07-31 (Jeff Leger)
+--
+-- == See Also
+--
+-- 'PhysicalDeviceYcbcrDegammaFeaturesQCOM',
+-- 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_ycbcr_degamma Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_ycbcr_degamma  ( PhysicalDeviceYcbcrDegammaFeaturesQCOM(..)
+                                                , SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM(..)
+                                                , QCOM_YCBCR_DEGAMMA_SPEC_VERSION
+                                                , pattern QCOM_YCBCR_DEGAMMA_SPEC_VERSION
+                                                , QCOM_YCBCR_DEGAMMA_EXTENSION_NAME
+                                                , pattern QCOM_YCBCR_DEGAMMA_EXTENSION_NAME
+                                                ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+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 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 Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM))
+-- | VkPhysicalDeviceYcbcrDegammaFeaturesQCOM - Structure describing Y′CBCR
+-- degamma features that can be supported by an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceYcbcrDegammaFeaturesQCOM' 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. 'PhysicalDeviceYcbcrDegammaFeaturesQCOM' /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_QCOM_ycbcr_degamma VK_QCOM_ycbcr_degamma>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceYcbcrDegammaFeaturesQCOM = PhysicalDeviceYcbcrDegammaFeaturesQCOM
+  { -- | #features-ycbcr-degamma# @ycbcrDegamma@ indicates whether the
+    -- implementation supports
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-ycbcr-degamma Y′CBCR degamma>.
+    ycbcrDegamma :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceYcbcrDegammaFeaturesQCOM)
+#endif
+deriving instance Show PhysicalDeviceYcbcrDegammaFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceYcbcrDegammaFeaturesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (ycbcrDegamma))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM where
+  peekCStruct p = do
+    ycbcrDegamma <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceYcbcrDegammaFeaturesQCOM
+             (bool32ToBool ycbcrDegamma)
+
+instance Storable PhysicalDeviceYcbcrDegammaFeaturesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceYcbcrDegammaFeaturesQCOM where
+  zero = PhysicalDeviceYcbcrDegammaFeaturesQCOM
+           zero
+
+
+-- | VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM - Structure
+-- specifying Y′CBCR degamma parameters
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_ycbcr_degamma VK_QCOM_ycbcr_degamma>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+  { -- | @enableYDegamma@ indicates
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-ycbcr-degamma sRGB to linear>
+    -- conversion is enabled for the G component.
+    enableYDegamma :: Bool
+  , -- | @enableCbCrDegamma@ indicates
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-ycbcr-degamma sRGB to linear>
+    -- conversion is enabled for the R and B components.
+    enableCbCrDegamma :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM)
+#endif
+deriving instance Show SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+
+instance ToCStruct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (enableYDegamma))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (enableCbCrDegamma))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM)
+    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 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where
+  peekCStruct p = do
+    enableYDegamma <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    enableCbCrDegamma <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+             (bool32ToBool enableYDegamma) (bool32ToBool enableCbCrDegamma)
+
+instance Storable SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where
+  zero = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+           zero
+           zero
+
+
+type QCOM_YCBCR_DEGAMMA_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION"
+pattern QCOM_YCBCR_DEGAMMA_SPEC_VERSION :: forall a . Integral a => a
+pattern QCOM_YCBCR_DEGAMMA_SPEC_VERSION = 1
+
+
+type QCOM_YCBCR_DEGAMMA_EXTENSION_NAME = "VK_QCOM_ycbcr_degamma"
+
+-- No documentation found for TopLevel "VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME"
+pattern QCOM_YCBCR_DEGAMMA_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern QCOM_YCBCR_DEGAMMA_EXTENSION_NAME = "VK_QCOM_ycbcr_degamma"
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot
@@ -0,0 +1,173 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_ycbcr_degamma - device extension
+--
+-- == VK_QCOM_ycbcr_degamma
+--
+-- [__Name String__]
+--     @VK_QCOM_ycbcr_degamma@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     521
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__; __Contact__]
+--
+--     -   Jeff Leger
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_ycbcr_degamma] @jackohound%0A*Here describe the issue or question you have about the VK_QCOM_ycbcr_degamma extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-07-31
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Interactions and External Dependencies__]
+--     None
+--
+-- [__Contributors__]
+--
+--     -   Jeff Leger, Qualcomm
+--
+--     -   Jonathan Wicks, Qualcomm
+--
+-- == Description
+--
+-- This extension allows implementations to expose support for “sRGB EOTF”
+-- also known as “sRGB degamma”, used in combination with images using
+-- 8-bit Y′CBCR formats. In addition, the degamma can be selectively
+-- applied to the Y (luma) or CrCb (chroma).
+--
+-- @VK_KHR_sampler_ycbcr_conversion@ adds support for Y′CBCR conversion,
+-- but allows texture sampling in a non-linear space which can cause
+-- artifacts. This extension allows implementations to expose sRGB degamma
+-- for Y′CBCR formats, which is performed during texture filtering,
+-- allowing texture filtering to operate in a linear space.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceYcbcrDegammaFeaturesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo':
+--
+--     -   'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_YCBCR_DEGAMMA_EXTENSION_NAME'
+--
+-- -   'QCOM_YCBCR_DEGAMMA_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM'
+--
+-- == Issues
+--
+-- 1) Which Y′CBCR formats support the degamma feature?
+--
+-- __RESOLVED__: For implementations that support the extension, each
+-- format that contains 8-bit R, G, and B components and supports either
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT'
+-- or
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT'
+-- must support degamma.
+--
+-- Since non-compressed Vulkan sRGB formats are already limited to 8-bit
+-- components, and since Adreno supports degamma for all 8bit Y′CBCR
+-- formats, this extension does not introduce a new VK_FORMAT_FEATURE* bit
+-- for the degamma feature.
+--
+-- 2) On which Y′CBCR components is the degamma applied?
+--
+-- __RESOLVED__: While degamma is expected to be applied to only the Y
+-- (luma) component, the extension provides the ability to selectively
+-- enable degamma for both the Y (luma) and\/or CbCr (chroma) components.
+--
+-- 3) Should degamma be enabled for the sampler object or for the image
+-- view object?
+--
+-- __RESOLVED__: Both. This extension extends
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- and the specification already requires that both sampler and view
+-- objects must be created with an /identical/
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'
+-- in their pNext chains.
+--
+-- 4) Why apply the “sRGB” transfer function directly to Y′CBCR data when
+-- it would be more correct to use the “ITU transfer function”, and do so
+-- only after the values have been converted into non-linear R’G’B\'?
+--
+-- __RESOLVED__: Y′CBCR is frequently stored according to standards (e.g.
+-- BT.601 and BT.709) that specify that the conversion between linear and
+-- non-linear should use the ITU Transfer function. The ITU transfer
+-- function is mathematically different from the sRGB transfer function and
+-- while sRGB and ITU define similar curves, the difference is significant.
+-- Performing the “sRGB degamma” prior to range expansion can introduce
+-- artifacts if the content uses
+-- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SAMPLER_YCBCR_RANGE_ITU_NARROW'
+-- encoding. Nevertheless, using sRGB can make sense for certain use-cases
+-- where camera YCbCr images are known to be encoded with sRGB (or a pure
+-- gamma 2.2) transfer function and are known to use full-range encoding.
+--
+-- For those use-cases, this extension leverages the GPU ability to enable
+-- sRGB degamma at little cost, and can improve quality because texture
+-- filtering is able to occur in linear space.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-07-31 (Jeff Leger)
+--
+-- == See Also
+--
+-- 'PhysicalDeviceYcbcrDegammaFeaturesQCOM',
+-- 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_ycbcr_degamma Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_ycbcr_degamma  ( PhysicalDeviceYcbcrDegammaFeaturesQCOM
+                                                , SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+                                                ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceYcbcrDegammaFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM
+instance Show PhysicalDeviceYcbcrDegammaFeaturesQCOM
+
+instance FromCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM
+
+
+data SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+
+instance ToCStruct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+instance Show SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+
+instance FromCStruct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
+
diff --git a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs
@@ -0,0 +1,762 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QNX_external_memory_screen_buffer - device extension
+--
+-- == VK_QNX_external_memory_screen_buffer
+--
+-- [__Name String__]
+--     @VK_QNX_external_memory_screen_buffer@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     530
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation VK_KHR_dedicated_allocation>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--
+-- [__Contact__]
+--
+--     -   Mike Gorchak
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QNX_external_memory_screen_buffer] @mgorchak-blackberry%0A*Here describe the issue or question you have about the VK_QNX_external_memory_screen_buffer extension* >
+--
+--     -   Aaron Ruby
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QNX_external_memory_screen_buffer] @aruby-blackberry%0A*Here describe the issue or question you have about the VK_QNX_external_memory_screen_buffer extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-17
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Gorchak, QNX \/ Blackberry Limited
+--
+--     -   Aaron Ruby, QNX \/ Blackberry Limited
+--
+-- == Description
+--
+-- This extension enables an application to import QNX Screen
+-- 'Screen_buffer' objects created outside of the Vulkan device into Vulkan
+-- memory objects, where they can be bound to images and buffers.
+--
+-- Some 'Screen_buffer' images have implementation-defined /external
+-- formats/ that /may/ not correspond to Vulkan formats. Sampler Y′CBCR
+-- conversion /can/ be used to sample from these images and convert them to
+-- a known color space.
+--
+-- 'Screen_buffer' is strongly typed, so naming the handle type is
+-- redundant. The internal layout and therefore size of a 'Screen_buffer'
+-- image may depend on native usage flags that do not have corresponding
+-- Vulkan counterparts.
+--
+-- == New Commands
+--
+-- -   'getScreenBufferPropertiesQNX'
+--
+-- == New Structures
+--
+-- -   'ScreenBufferPropertiesQNX'
+--
+-- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo',
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo':
+--
+--     -   'ExternalFormatQNX'
+--
+-- -   Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':
+--
+--     -   'ImportScreenBufferInfoQNX'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX'
+--
+-- -   Extending 'ScreenBufferPropertiesQNX':
+--
+--     -   'ScreenBufferFormatPropertiesQNX'
+--
+-- == New Enum Constants
+--
+-- -   'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME'
+--
+-- -   'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':
+--
+--     -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-05-17 (Mike Gorchak)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'ExternalFormatQNX', 'ImportScreenBufferInfoQNX',
+-- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
+-- 'ScreenBufferFormatPropertiesQNX', 'ScreenBufferPropertiesQNX',
+-- 'getScreenBufferPropertiesQNX'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QNX_external_memory_screen_buffer  ( getScreenBufferPropertiesQNX
+                                                               , ImportScreenBufferInfoQNX(..)
+                                                               , ScreenBufferPropertiesQNX(..)
+                                                               , ScreenBufferFormatPropertiesQNX(..)
+                                                               , ExternalFormatQNX(..)
+                                                               , PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX(..)
+                                                               , QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION
+                                                               , pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION
+                                                               , QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME
+                                                               , pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME
+                                                               , Screen_buffer
+                                                               ) where
+
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Data.Typeable (eqT)
+import Foreign.Marshal.Alloc (allocaBytes)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+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.Type.Equality ((:~:)(Refl))
+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.Word (Word64)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.CStruct.Extends (forgetExtensions)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct.Extends (Chain)
+import Vulkan.Core11.Enums.ChromaLocation (ChromaLocation)
+import Vulkan.Core10.ImageView (ComponentMapping)
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkGetScreenBufferPropertiesQNX))
+import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import Vulkan.Core10.Enums.Format (Format)
+import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core11.Enums.SamplerYcbcrModelConversion (SamplerYcbcrModelConversion)
+import Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange)
+import Vulkan.CStruct.Extends (SomeStruct)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetScreenBufferPropertiesQNX
+  :: FunPtr (Ptr Device_T -> Ptr Screen_buffer -> Ptr (SomeStruct ScreenBufferPropertiesQNX) -> IO Result) -> Ptr Device_T -> Ptr Screen_buffer -> Ptr (SomeStruct ScreenBufferPropertiesQNX) -> IO Result
+
+-- | vkGetScreenBufferPropertiesQNX - Get Properties of External Memory QNX
+-- Screen Buffers
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Extensions.VK_KHR_external_memory.ERROR_INVALID_EXTERNAL_HANDLE_KHR'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer VK_QNX_external_memory_screen_buffer>,
+-- 'Vulkan.Core10.Handles.Device', 'ScreenBufferPropertiesQNX'
+getScreenBufferPropertiesQNX :: forall a io
+                              . ( Extendss ScreenBufferPropertiesQNX a
+                                , PokeChain a
+                                , PeekChain a
+                                , MonadIO io )
+                             => -- | @device@ is the logical device that will be importing @buffer@.
+                                --
+                                -- #VUID-vkGetScreenBufferPropertiesQNX-device-parameter# @device@ /must/
+                                -- be a valid 'Vulkan.Core10.Handles.Device' handle
+                                Device
+                             -> -- | @buffer@ is the QNX Screen buffer which will be imported.
+                                --
+                                -- #VUID-vkGetScreenBufferPropertiesQNX-buffer-08968# @buffer@ /must/ be a
+                                -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-validity valid QNX Screen buffer>
+                                --
+                                -- #VUID-vkGetScreenBufferPropertiesQNX-buffer-parameter# @buffer@ /must/
+                                -- be a valid pointer to a valid 'Screen_buffer' value
+                                (Ptr Screen_buffer)
+                             -> io (ScreenBufferPropertiesQNX a)
+getScreenBufferPropertiesQNX device buffer = liftIO . evalContT $ do
+  let vkGetScreenBufferPropertiesQNXPtr = pVkGetScreenBufferPropertiesQNX (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetScreenBufferPropertiesQNXPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetScreenBufferPropertiesQNX is null" Nothing Nothing
+  let vkGetScreenBufferPropertiesQNX' = mkVkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNXPtr
+  pPProperties <- ContT (withZeroCStruct @(ScreenBufferPropertiesQNX _))
+  r <- lift $ traceAroundEvent "vkGetScreenBufferPropertiesQNX" (vkGetScreenBufferPropertiesQNX'
+                                                                   (deviceHandle (device))
+                                                                   (buffer)
+                                                                   (forgetExtensions (pPProperties)))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pProperties <- lift $ peekCStruct @(ScreenBufferPropertiesQNX _) pPProperties
+  pure $ (pProperties)
+
+
+-- | VkImportScreenBufferInfoQNX - Import memory from a QNX Screen buffer
+--
+-- = Description
+--
+-- The implementation /may/ not acquire a reference to the imported Screen
+-- buffer. Therefore, the application /must/ ensure that the object
+-- referred to by @buffer@ stays valid as long as the device memory to
+-- which it is imported is being used.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkImportScreenBufferInfoQNX-buffer-08966# If @buffer@ is not
+--     @NULL@, QNX Screen Buffers /must/ be supported for import, as
+--     reported by
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'
+--     or
+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties'
+--
+-- -   #VUID-VkImportScreenBufferInfoQNX-buffer-08967# @buffer@ is not
+--     @NULL@, it /must/ be a pointer to
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-validity valid QNX Screen buffer>
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkImportScreenBufferInfoQNX-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer VK_QNX_external_memory_screen_buffer>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ImportScreenBufferInfoQNX = ImportScreenBufferInfoQNX
+  { -- | @buffer@ is a pointer to a @struct@ 'Screen_buffer', the QNX Screen
+    -- buffer to import
+    buffer :: Ptr Screen_buffer }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ImportScreenBufferInfoQNX)
+#endif
+deriving instance Show ImportScreenBufferInfoQNX
+
+instance ToCStruct ImportScreenBufferInfoQNX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ImportScreenBufferInfoQNX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr Screen_buffer))) (buffer)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr (Ptr Screen_buffer))) (zero)
+    f
+
+instance FromCStruct ImportScreenBufferInfoQNX where
+  peekCStruct p = do
+    buffer <- peek @(Ptr Screen_buffer) ((p `plusPtr` 16 :: Ptr (Ptr Screen_buffer)))
+    pure $ ImportScreenBufferInfoQNX
+             buffer
+
+instance Storable ImportScreenBufferInfoQNX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ImportScreenBufferInfoQNX where
+  zero = ImportScreenBufferInfoQNX
+           zero
+
+
+-- | VkScreenBufferPropertiesQNX - Properties of External Memory QNX Screen
+-- Buffers
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkScreenBufferPropertiesQNX-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX'
+--
+-- -   #VUID-VkScreenBufferPropertiesQNX-pNext-pNext# @pNext@ /must/ be
+--     @NULL@ or a pointer to a valid instance of
+--     'ScreenBufferFormatPropertiesQNX'
+--
+-- -   #VUID-VkScreenBufferPropertiesQNX-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer VK_QNX_external_memory_screen_buffer>,
+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'getScreenBufferPropertiesQNX'
+data ScreenBufferPropertiesQNX (es :: [Type]) = ScreenBufferPropertiesQNX
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @allocationSize@ is the size of the external memory.
+    allocationSize :: DeviceSize
+  , -- | @memoryTypeBits@ is a bitmask containing one bit set for every memory
+    -- type which the specified Screen buffer /can/ be imported as.
+    memoryTypeBits :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ScreenBufferPropertiesQNX (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (ScreenBufferPropertiesQNX es)
+
+instance Extensible ScreenBufferPropertiesQNX where
+  extensibleTypeName = "ScreenBufferPropertiesQNX"
+  setNext ScreenBufferPropertiesQNX{..} next' = ScreenBufferPropertiesQNX{next = next', ..}
+  getNext ScreenBufferPropertiesQNX{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ScreenBufferPropertiesQNX e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @ScreenBufferFormatPropertiesQNX = Just f
+    | otherwise = Nothing
+
+instance ( Extendss ScreenBufferPropertiesQNX es
+         , PokeChain es ) => ToCStruct (ScreenBufferPropertiesQNX es) where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ScreenBufferPropertiesQNX{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (allocationSize)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (memoryTypeBits)
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    lift $ f
+
+instance ( Extendss ScreenBufferPropertiesQNX es
+         , PeekChain es ) => FromCStruct (ScreenBufferPropertiesQNX es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    allocationSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
+    memoryTypeBits <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ ScreenBufferPropertiesQNX
+             next allocationSize memoryTypeBits
+
+instance es ~ '[] => Zero (ScreenBufferPropertiesQNX es) where
+  zero = ScreenBufferPropertiesQNX
+           ()
+           zero
+           zero
+
+
+-- | VkScreenBufferFormatPropertiesQNX - Structure describing the image
+-- format properties of a QNX Screen buffer
+--
+-- = Description
+--
+-- If the QNX Screen buffer has one of the formats listed in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-qnx-screen-buffer-formats QNX Screen Format Equivalence table>,
+-- then @format@ /must/ have the equivalent Vulkan format listed in the
+-- table. Otherwise, @format@ /may/ be
+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', indicating the QNX Screen
+-- buffer /can/ only be used with an external format. The @formatFeatures@
+-- member /must/ include
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'
+-- and /should/ include
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
+-- and
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT'.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer VK_QNX_external_memory_screen_buffer>,
+-- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation',
+-- 'Vulkan.Core10.ImageView.ComponentMapping',
+-- 'Vulkan.Core10.Enums.Format.Format',
+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlags',
+-- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SamplerYcbcrModelConversion',
+-- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SamplerYcbcrRange',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ScreenBufferFormatPropertiesQNX = ScreenBufferFormatPropertiesQNX
+  { -- | @format@ is the Vulkan format corresponding to the Screen buffer’s
+    -- format or 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' if there is not
+    -- an equivalent Vulkan format.
+    format :: Format
+  , -- | @externalFormat@ is an implementation-defined external format identifier
+    -- for use with 'ExternalFormatQNX'. It /must/ not be zero.
+    externalFormat :: Word64
+  , -- | @screenUsage@ is an implementation-defined external usage identifier for
+    -- the QNX Screen buffer.
+    screenUsage :: Word64
+  , -- | @formatFeatures@ describes the capabilities of this external format when
+    -- used with an image bound to memory imported from @buffer@.
+    formatFeatures :: FormatFeatureFlags
+  , -- | @samplerYcbcrConversionComponents@ is the component swizzle that
+    -- /should/ be used in
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.
+    samplerYcbcrConversionComponents :: ComponentMapping
+  , -- | @suggestedYcbcrModel@ is a suggested color model to use in the
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.
+    suggestedYcbcrModel :: SamplerYcbcrModelConversion
+  , -- | @suggestedYcbcrRange@ is a suggested numerical value range to use in
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.
+    suggestedYcbcrRange :: SamplerYcbcrRange
+  , -- | @suggestedXChromaOffset@ is a suggested X chroma offset to use in
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.
+    suggestedXChromaOffset :: ChromaLocation
+  , -- | @suggestedYChromaOffset@ is a suggested Y chroma offset to use in
+    -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.
+    suggestedYChromaOffset :: ChromaLocation
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ScreenBufferFormatPropertiesQNX)
+#endif
+deriving instance Show ScreenBufferFormatPropertiesQNX
+
+instance ToCStruct ScreenBufferFormatPropertiesQNX where
+  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ScreenBufferFormatPropertiesQNX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Format)) (format)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (externalFormat)
+    poke ((p `plusPtr` 32 :: Ptr Word64)) (screenUsage)
+    poke ((p `plusPtr` 40 :: Ptr FormatFeatureFlags)) (formatFeatures)
+    poke ((p `plusPtr` 44 :: Ptr ComponentMapping)) (samplerYcbcrConversionComponents)
+    poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrModelConversion)) (suggestedYcbcrModel)
+    poke ((p `plusPtr` 64 :: Ptr SamplerYcbcrRange)) (suggestedYcbcrRange)
+    poke ((p `plusPtr` 68 :: Ptr ChromaLocation)) (suggestedXChromaOffset)
+    poke ((p `plusPtr` 72 :: Ptr ChromaLocation)) (suggestedYChromaOffset)
+    f
+  cStructSize = 80
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Format)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 32 :: Ptr Word64)) (zero)
+    poke ((p `plusPtr` 40 :: Ptr FormatFeatureFlags)) (zero)
+    poke ((p `plusPtr` 44 :: Ptr ComponentMapping)) (zero)
+    poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrModelConversion)) (zero)
+    poke ((p `plusPtr` 64 :: Ptr SamplerYcbcrRange)) (zero)
+    poke ((p `plusPtr` 68 :: Ptr ChromaLocation)) (zero)
+    poke ((p `plusPtr` 72 :: Ptr ChromaLocation)) (zero)
+    f
+
+instance FromCStruct ScreenBufferFormatPropertiesQNX where
+  peekCStruct p = do
+    format <- peek @Format ((p `plusPtr` 16 :: Ptr Format))
+    externalFormat <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
+    screenUsage <- peek @Word64 ((p `plusPtr` 32 :: Ptr Word64))
+    formatFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 40 :: Ptr FormatFeatureFlags))
+    samplerYcbcrConversionComponents <- peekCStruct @ComponentMapping ((p `plusPtr` 44 :: Ptr ComponentMapping))
+    suggestedYcbcrModel <- peek @SamplerYcbcrModelConversion ((p `plusPtr` 60 :: Ptr SamplerYcbcrModelConversion))
+    suggestedYcbcrRange <- peek @SamplerYcbcrRange ((p `plusPtr` 64 :: Ptr SamplerYcbcrRange))
+    suggestedXChromaOffset <- peek @ChromaLocation ((p `plusPtr` 68 :: Ptr ChromaLocation))
+    suggestedYChromaOffset <- peek @ChromaLocation ((p `plusPtr` 72 :: Ptr ChromaLocation))
+    pure $ ScreenBufferFormatPropertiesQNX
+             format
+             externalFormat
+             screenUsage
+             formatFeatures
+             samplerYcbcrConversionComponents
+             suggestedYcbcrModel
+             suggestedYcbcrRange
+             suggestedXChromaOffset
+             suggestedYChromaOffset
+
+instance Storable ScreenBufferFormatPropertiesQNX where
+  sizeOf ~_ = 80
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ScreenBufferFormatPropertiesQNX where
+  zero = ScreenBufferFormatPropertiesQNX
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+-- | VkExternalFormatQNX - Structure containing a QNX Screen buffer external
+-- format
+--
+-- = Description
+--
+-- If @externalFormat@ is zero, the effect is as if the 'ExternalFormatQNX'
+-- structure was not present. Otherwise, the @image@ will have the
+-- specified external format.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer VK_QNX_external_memory_screen_buffer>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data ExternalFormatQNX = ExternalFormatQNX
+  { -- | @externalFormat@ is an implementation-defined identifier for the
+    -- external format
+    --
+    -- #VUID-VkExternalFormatQNX-externalFormat-08956# @externalFormat@ /must/
+    -- be @0@ or a value returned in the @externalFormat@ member of
+    -- 'ScreenBufferFormatPropertiesQNX' by an earlier call to
+    -- 'getScreenBufferPropertiesQNX'
+    externalFormat :: Word64 }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (ExternalFormatQNX)
+#endif
+deriving instance Show ExternalFormatQNX
+
+instance ToCStruct ExternalFormatQNX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p ExternalFormatQNX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (externalFormat)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)
+    f
+
+instance FromCStruct ExternalFormatQNX where
+  peekCStruct p = do
+    externalFormat <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64))
+    pure $ ExternalFormatQNX
+             externalFormat
+
+instance Storable ExternalFormatQNX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero ExternalFormatQNX where
+  zero = ExternalFormatQNX
+           zero
+
+
+-- | VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX - Structure
+-- describing QNX Screen Buffer features that can be supported by an
+-- implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX'
+-- structure describe the following features:
+--
+-- = Description
+--
+-- \'
+--
+-- +-----------------------------------+------------------------------------+
+-- | Features                          | Functionality                      |
+-- +-----------------------------------+------------------------------------+
+-- | @screenBufferImport@              | 'ImportScreenBufferInfoQNX'        |
+-- +-----------------------------------+------------------------------------+
+-- | Always supported1                 | 'getScreenBufferPropertiesQNX',    |
+-- |                                   | 'ScreenBufferPropertiesQNX',       |
+-- |                                   | 'ScreenBufferFormatPropertiesQNX', |
+-- |                                   | 'ExternalFormatQNX'                |
+-- +-----------------------------------+------------------------------------+
+--
+-- Functionality supported for QNX Screen Buffer features
+--
+-- [1]
+--     Functionality in this row is always available.
+--
+-- The
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalscreenbuffer-table Functionality supported for QNX Screen buffer features>
+-- table summarizes the functionality enabled by the
+-- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' structure. Each
+-- entry in the body of the table summarizes the functionality that /can/
+-- be used when the given features are supported and enabled. This
+-- summarizes Valid Usage statements that are added elsewhere in this
+-- specification.
+--
+-- If the 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' 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. 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' /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_QNX_external_memory_screen_buffer VK_QNX_external_memory_screen_buffer>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+  { -- | #features-screenBufferImport# @screenBufferImport@ indicates whether QNX
+    -- Screen buffer import functionality is supported. If @screenBufferImport@
+    -- is set to 'Vulkan.Core10.FundamentalTypes.TRUE',
+    -- 'Vulkan.Core10.Handles.DeviceMemory' supports importing 'Screen_buffer'
+    -- from applications. In this case, the application is responsible for the
+    -- resource management of the 'Screen_buffer'.
+    screenBufferImport :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX)
+#endif
+deriving instance Show PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+
+instance ToCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (screenBufferImport))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where
+  peekCStruct p = do
+    screenBufferImport <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+             (bool32ToBool screenBufferImport)
+
+instance Storable PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where
+  zero = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+           zero
+
+
+type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION"
+pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION :: forall a . Integral a => a
+pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION = 1
+
+
+type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME = "VK_QNX_external_memory_screen_buffer"
+
+-- No documentation found for TopLevel "VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME"
+pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME = "VK_QNX_external_memory_screen_buffer"
+
+
+data Screen_buffer
+
diff --git a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot
@@ -0,0 +1,205 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QNX_external_memory_screen_buffer - device extension
+--
+-- == VK_QNX_external_memory_screen_buffer
+--
+-- [__Name String__]
+--     @VK_QNX_external_memory_screen_buffer@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     530
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory VK_KHR_external_memory>
+--              and
+--             
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation VK_KHR_dedicated_allocation>
+--          or
+--         
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--     and
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign VK_EXT_queue_family_foreign>
+--
+-- [__Contact__]
+--
+--     -   Mike Gorchak
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QNX_external_memory_screen_buffer] @mgorchak-blackberry%0A*Here describe the issue or question you have about the VK_QNX_external_memory_screen_buffer extension* >
+--
+--     -   Aaron Ruby
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QNX_external_memory_screen_buffer] @aruby-blackberry%0A*Here describe the issue or question you have about the VK_QNX_external_memory_screen_buffer extension* >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-05-17
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Mike Gorchak, QNX \/ Blackberry Limited
+--
+--     -   Aaron Ruby, QNX \/ Blackberry Limited
+--
+-- == Description
+--
+-- This extension enables an application to import QNX Screen
+-- 'Screen_buffer' objects created outside of the Vulkan device into Vulkan
+-- memory objects, where they can be bound to images and buffers.
+--
+-- Some 'Screen_buffer' images have implementation-defined /external
+-- formats/ that /may/ not correspond to Vulkan formats. Sampler Y′CBCR
+-- conversion /can/ be used to sample from these images and convert them to
+-- a known color space.
+--
+-- 'Screen_buffer' is strongly typed, so naming the handle type is
+-- redundant. The internal layout and therefore size of a 'Screen_buffer'
+-- image may depend on native usage flags that do not have corresponding
+-- Vulkan counterparts.
+--
+-- == New Commands
+--
+-- -   'getScreenBufferPropertiesQNX'
+--
+-- == New Structures
+--
+-- -   'ScreenBufferPropertiesQNX'
+--
+-- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo',
+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo':
+--
+--     -   'ExternalFormatQNX'
+--
+-- -   Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':
+--
+--     -   'ImportScreenBufferInfoQNX'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX'
+--
+-- -   Extending 'ScreenBufferPropertiesQNX':
+--
+--     -   'ScreenBufferFormatPropertiesQNX'
+--
+-- == New Enum Constants
+--
+-- -   'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME'
+--
+-- -   'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':
+--
+--     -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-05-17 (Mike Gorchak)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'ExternalFormatQNX', 'ImportScreenBufferInfoQNX',
+-- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',
+-- 'ScreenBufferFormatPropertiesQNX', 'ScreenBufferPropertiesQNX',
+-- 'getScreenBufferPropertiesQNX'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QNX_external_memory_screen_buffer  ( ExternalFormatQNX
+                                                               , ImportScreenBufferInfoQNX
+                                                               , PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+                                                               , ScreenBufferFormatPropertiesQNX
+                                                               , ScreenBufferPropertiesQNX
+                                                               , Screen_buffer
+                                                               ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
+data ExternalFormatQNX
+
+instance ToCStruct ExternalFormatQNX
+instance Show ExternalFormatQNX
+
+instance FromCStruct ExternalFormatQNX
+
+
+data ImportScreenBufferInfoQNX
+
+instance ToCStruct ImportScreenBufferInfoQNX
+instance Show ImportScreenBufferInfoQNX
+
+instance FromCStruct ImportScreenBufferInfoQNX
+
+
+data PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+
+instance ToCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+instance Show PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+
+instance FromCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
+
+
+data ScreenBufferFormatPropertiesQNX
+
+instance ToCStruct ScreenBufferFormatPropertiesQNX
+instance Show ScreenBufferFormatPropertiesQNX
+
+instance FromCStruct ScreenBufferFormatPropertiesQNX
+
+
+type role ScreenBufferPropertiesQNX nominal
+data ScreenBufferPropertiesQNX (es :: [Type])
+
+instance ( Extendss ScreenBufferPropertiesQNX es
+         , PokeChain es ) => ToCStruct (ScreenBufferPropertiesQNX es)
+instance Show (Chain es) => Show (ScreenBufferPropertiesQNX es)
+
+instance ( Extendss ScreenBufferPropertiesQNX es
+         , PeekChain es ) => FromCStruct (ScreenBufferPropertiesQNX es)
+
+
+data Screen_buffer
+
diff --git a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs
--- a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs
+++ b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface VK_KHR_surface>
 --
diff --git a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs
--- a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs
+++ b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot
--- a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot
+++ b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
diff --git a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs
--- a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs
+++ b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -141,6 +144,10 @@
 -- -   #VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameter# @ppData@
 --     /must/ be a valid pointer to a pointer value
 --
+-- -   #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent#
+--     @descriptorSet@ /must/ have been created, allocated, or retrieved
+--     from @device@
+--
 -- There is currently no specification language written for this type. This
 -- section acts only as placeholder and to avoid dead links in the
 -- specification and reference pages.
@@ -359,6 +366,10 @@
                                  -> -- | #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameter#
                                     -- @descriptorSet@ /must/ be a valid 'Vulkan.Core10.Handles.DescriptorSet'
                                     -- handle
+                                    --
+                                    -- #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent#
+                                    -- @descriptorSet@ /must/ have been created, allocated, or retrieved from
+                                    -- @device@
                                     DescriptorSet
                                  -> io (("data" ::: Ptr ()))
 getDescriptorSetHostMappingVALVE device descriptorSet = liftIO . evalContT $ do
diff --git a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot
--- a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot
+++ b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot
@@ -17,6 +17,9 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
 --
@@ -140,6 +143,10 @@
 --
 -- -   #VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameter# @ppData@
 --     /must/ be a valid pointer to a pointer value
+--
+-- -   #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent#
+--     @descriptorSet@ /must/ have been created, allocated, or retrieved
+--     from @device@
 --
 -- There is currently no specification language written for this type. This
 -- section acts only as placeholder and to avoid dead links in the
diff --git a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs
--- a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs
+++ b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs
@@ -17,10 +17,13 @@
 -- [__Revision__]
 --     1
 --
+-- [__Ratification Status__]
+--     Not ratified
+--
 -- [__Extension and Version Dependencies__]
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 VK_KHR_maintenance3>
 --
--- [__Deprecation state__]
+-- [__Deprecation State__]
 --
 --     -   /Promoted/ to @VK_EXT_mutable_descriptor_type@ extension
 --
diff --git a/src/Vulkan/SPIRVRequirements.hs b/src/Vulkan/SPIRVRequirements.hs
--- a/src/Vulkan/SPIRVRequirements.hs
+++ b/src/Vulkan/SPIRVRequirements.hs
@@ -18,6 +18,7 @@
 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_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR(..))
 import Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV(..))
 import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures(..))
 import Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT(..))
@@ -26,18 +27,21 @@
 import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..))
 import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT(..))
 import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR(..))
+import Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM(..))
 import Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM(..))
 import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..))
 import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..))
 import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR(..))
 import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..))
 import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..))
+import Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR(..))
 import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..))
 import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..))
 import Vulkan.Extensions.VK_ARM_shader_core_builtins (PhysicalDeviceShaderCoreBuiltinsFeaturesARM(..))
 import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)
 import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..))
 import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..))
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX(..))
 import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..))
 import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV(..))
 import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)
@@ -56,6 +60,7 @@
 import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..))
 import Vulkan.Core13 (PhysicalDeviceVulkan13Features(..))
 import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..))
+import Vulkan.Extensions.VK_AMDX_shader_enqueue (pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME)
 import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME)
 import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME)
 import Vulkan.Extensions.VK_AMD_gpu_shader_int16 (pattern AMD_GPU_SHADER_INT16_EXTENSION_NAME)
@@ -93,6 +98,7 @@
 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)
 import Vulkan.Extensions.VK_KHR_buffer_device_address (pattern KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)
+import Vulkan.Extensions.VK_KHR_cooperative_matrix (pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_device_group (pattern KHR_DEVICE_GROUP_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)
@@ -101,6 +107,7 @@
 import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME)
+import Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_atomic_int64 (pattern KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_clock (pattern KHR_SHADER_CLOCK_EXTENSION_NAME)
 import Vulkan.Extensions.VK_KHR_shader_draw_parameters (pattern KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME)
@@ -130,6 +137,7 @@
 import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_viewport_array2 (pattern NV_VIEWPORT_ARRAY_2_EXTENSION_NAME)
+import Vulkan.Extensions.VK_QCOM_image_processing2 (pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME)
 import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME)
 import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
 import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_ARITHMETIC_BIT))
@@ -633,7 +641,7 @@
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]
       [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]
-  "SPV_INTEL_shader_integer_functions" ->
+  "SPV_INTEL_shader_integer_functions2" ->
     (,)
       []
       [ RequireDeviceExtension
@@ -655,6 +663,15 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "SPV_QCOM_image_processing2" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "SPV_EXT_mesh_shader" ->
     (,)
       []
@@ -664,6 +681,15 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "SPV_KHR_ray_tracing_position_fetch" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "SPV_EXT_shader_tile_image" ->
     (,)
       []
@@ -673,6 +699,42 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "SPV_EXT_opacity_micromap" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = EXT_OPACITY_MICROMAP_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_KHR_cooperative_matrix" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_ARM_core_builtins" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "SPV_AMDX_shader_enqueue" ->
+    (,)
+      []
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = AMDX_SHADER_ENQUEUE_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   _ -> ([], [])
 
 spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])
@@ -2234,6 +2296,20 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "TextureBlockMatch2QCOM" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "textureBlockMatch2"
+          , checkFeature = \PhysicalDeviceImageProcessing2FeaturesQCOM{textureBlockMatch2} -> textureBlockMatch2
+          , enableFeature = \_ -> PhysicalDeviceImageProcessing2FeaturesQCOM{textureBlockMatch2 = True}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "MeshShadingEXT" ->
     (,)
       []
@@ -2289,6 +2365,20 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "RayTracingPositionFetchKHR" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "rayTracingPositionFetch"
+          , checkFeature = \PhysicalDeviceRayTracingPositionFetchFeaturesKHR{rayTracingPositionFetch} -> rayTracingPositionFetch
+          , enableFeature = \_ -> PhysicalDeviceRayTracingPositionFetchFeaturesKHR{rayTracingPositionFetch = True}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "TileImageColorReadAccessEXT" ->
     (,)
       []
@@ -2328,6 +2418,34 @@
       , RequireDeviceExtension
           { deviceExtensionLayerName = Nothing
           , deviceExtensionName = EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "CooperativeMatrixKHR" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "cooperativeMatrix"
+          , checkFeature = \PhysicalDeviceCooperativeMatrixFeaturesKHR{cooperativeMatrix} -> cooperativeMatrix
+          , enableFeature = \PhysicalDeviceCooperativeMatrixFeaturesKHR{..} -> PhysicalDeviceCooperativeMatrixFeaturesKHR{cooperativeMatrix = True, ..}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
+  "ShaderEnqueueAMDX" ->
+    (,)
+      []
+      [ RequireDeviceFeature
+          { featureName = "shaderEnqueue"
+          , checkFeature = \PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue} -> shaderEnqueue
+          , enableFeature = \_ -> PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue = True}
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = AMDX_SHADER_ENQUEUE_EXTENSION_NAME
           , deviceExtensionMinVersion = 0
           }
       ]
diff --git a/src/Vulkan/Version.hs b/src/Vulkan/Version.hs
--- a/src/Vulkan/Version.hs
+++ b/src/Vulkan/Version.hs
@@ -19,11 +19,11 @@
 import Data.Word (Word32)
 
 pattern HEADER_VERSION :: Word32
-pattern HEADER_VERSION = 246
+pattern HEADER_VERSION = 268
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 246
+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 268
 
 
 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           vulkan
-version:        3.25
+version:        3.26
 synopsis:       Bindings to the Vulkan graphics API.
 description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category:       Graphics
@@ -307,6 +307,8 @@
       Vulkan.Extensions.VK_AMD_shader_info
       Vulkan.Extensions.VK_AMD_shader_trinary_minmax
       Vulkan.Extensions.VK_AMD_texture_gather_bias_lod
+      Vulkan.Extensions.VK_AMDX_shader_enqueue
+      Vulkan.Extensions.VK_ANDROID_external_format_resolve
       Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer
       Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access
       Vulkan.Extensions.VK_ARM_shader_core_builtins
@@ -315,6 +317,7 @@
       Vulkan.Extensions.VK_EXT_acquire_drm_display
       Vulkan.Extensions.VK_EXT_acquire_xlib_display
       Vulkan.Extensions.VK_EXT_astc_decode_mode
+      Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state
       Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout
       Vulkan.Extensions.VK_EXT_blend_operation_advanced
       Vulkan.Extensions.VK_EXT_border_color_swizzle
@@ -327,6 +330,7 @@
       Vulkan.Extensions.VK_EXT_debug_marker
       Vulkan.Extensions.VK_EXT_debug_report
       Vulkan.Extensions.VK_EXT_debug_utils
+      Vulkan.Extensions.VK_EXT_depth_bias_control
       Vulkan.Extensions.VK_EXT_depth_clamp_zero_one
       Vulkan.Extensions.VK_EXT_depth_clip_control
       Vulkan.Extensions.VK_EXT_depth_clip_enable
@@ -341,21 +345,25 @@
       Vulkan.Extensions.VK_EXT_discard_rectangles
       Vulkan.Extensions.VK_EXT_display_control
       Vulkan.Extensions.VK_EXT_display_surface_counter
+      Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments
       Vulkan.Extensions.VK_EXT_extended_dynamic_state
       Vulkan.Extensions.VK_EXT_extended_dynamic_state2
       Vulkan.Extensions.VK_EXT_extended_dynamic_state3
+      Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified
       Vulkan.Extensions.VK_EXT_external_memory_dma_buf
       Vulkan.Extensions.VK_EXT_external_memory_host
       Vulkan.Extensions.VK_EXT_filter_cubic
       Vulkan.Extensions.VK_EXT_fragment_density_map
       Vulkan.Extensions.VK_EXT_fragment_density_map2
       Vulkan.Extensions.VK_EXT_fragment_shader_interlock
+      Vulkan.Extensions.VK_EXT_frame_boundary
       Vulkan.Extensions.VK_EXT_full_screen_exclusive
       Vulkan.Extensions.VK_EXT_global_priority
       Vulkan.Extensions.VK_EXT_global_priority_query
       Vulkan.Extensions.VK_EXT_graphics_pipeline_library
       Vulkan.Extensions.VK_EXT_hdr_metadata
       Vulkan.Extensions.VK_EXT_headless_surface
+      Vulkan.Extensions.VK_EXT_host_image_copy
       Vulkan.Extensions.VK_EXT_host_query_reset
       Vulkan.Extensions.VK_EXT_image_2d_view_of_3d
       Vulkan.Extensions.VK_EXT_image_compression_control
@@ -377,6 +385,7 @@
       Vulkan.Extensions.VK_EXT_multi_draw
       Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled
       Vulkan.Extensions.VK_EXT_mutable_descriptor_type
+      Vulkan.Extensions.VK_EXT_nested_command_buffer
       Vulkan.Extensions.VK_EXT_non_seamless_cube_map
       Vulkan.Extensions.VK_EXT_opacity_micromap
       Vulkan.Extensions.VK_EXT_pageable_device_local_memory
@@ -452,6 +461,7 @@
       Vulkan.Extensions.VK_KHR_android_surface
       Vulkan.Extensions.VK_KHR_bind_memory2
       Vulkan.Extensions.VK_KHR_buffer_device_address
+      Vulkan.Extensions.VK_KHR_cooperative_matrix
       Vulkan.Extensions.VK_KHR_copy_commands2
       Vulkan.Extensions.VK_KHR_create_renderpass2
       Vulkan.Extensions.VK_KHR_dedicated_allocation
@@ -492,6 +502,7 @@
       Vulkan.Extensions.VK_KHR_maintenance2
       Vulkan.Extensions.VK_KHR_maintenance3
       Vulkan.Extensions.VK_KHR_maintenance4
+      Vulkan.Extensions.VK_KHR_maintenance5
       Vulkan.Extensions.VK_KHR_map_memory2
       Vulkan.Extensions.VK_KHR_multiview
       Vulkan.Extensions.VK_KHR_performance_query
@@ -505,6 +516,7 @@
       Vulkan.Extensions.VK_KHR_ray_query
       Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1
       Vulkan.Extensions.VK_KHR_ray_tracing_pipeline
+      Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch
       Vulkan.Extensions.VK_KHR_relaxed_block_layout
       Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge
       Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion
@@ -539,6 +551,7 @@
       Vulkan.Extensions.VK_KHR_xlib_surface
       Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory
       Vulkan.Extensions.VK_LUNARG_direct_driver_loading
+      Vulkan.Extensions.VK_MSFT_layered_driver
       Vulkan.Extensions.VK_MVK_ios_surface
       Vulkan.Extensions.VK_MVK_macos_surface
       Vulkan.Extensions.VK_NN_vi_surface
@@ -551,10 +564,13 @@
       Vulkan.Extensions.VK_NV_coverage_reduction_mode
       Vulkan.Extensions.VK_NV_dedicated_allocation
       Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing
+      Vulkan.Extensions.VK_NV_descriptor_pool_overallocation
       Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints
       Vulkan.Extensions.VK_NV_device_diagnostics_config
       Vulkan.Extensions.VK_NV_device_generated_commands
+      Vulkan.Extensions.VK_NV_device_generated_commands_compute
       Vulkan.Extensions.VK_NV_displacement_micromap
+      Vulkan.Extensions.VK_NV_extended_sparse_address_space
       Vulkan.Extensions.VK_NV_external_memory
       Vulkan.Extensions.VK_NV_external_memory_capabilities
       Vulkan.Extensions.VK_NV_external_memory_rdma
@@ -569,6 +585,7 @@
       Vulkan.Extensions.VK_NV_inherited_viewport_scissor
       Vulkan.Extensions.VK_NV_linear_color_attachment
       Vulkan.Extensions.VK_NV_low_latency
+      Vulkan.Extensions.VK_NV_low_latency2
       Vulkan.Extensions.VK_NV_memory_decompression
       Vulkan.Extensions.VK_NV_mesh_shader
       Vulkan.Extensions.VK_NV_optical_flow
@@ -589,8 +606,11 @@
       Vulkan.Extensions.VK_NVX_binary_import
       Vulkan.Extensions.VK_NVX_image_view_handle
       Vulkan.Extensions.VK_NVX_multiview_per_view_attributes
+      Vulkan.Extensions.VK_QCOM_filter_cubic_clamp
+      Vulkan.Extensions.VK_QCOM_filter_cubic_weights
       Vulkan.Extensions.VK_QCOM_fragment_density_map_offset
       Vulkan.Extensions.VK_QCOM_image_processing
+      Vulkan.Extensions.VK_QCOM_image_processing2
       Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas
       Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports
       Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve
@@ -598,6 +618,8 @@
       Vulkan.Extensions.VK_QCOM_render_pass_transform
       Vulkan.Extensions.VK_QCOM_rotated_copy_commands
       Vulkan.Extensions.VK_QCOM_tile_properties
+      Vulkan.Extensions.VK_QCOM_ycbcr_degamma
+      Vulkan.Extensions.VK_QNX_external_memory_screen_buffer
       Vulkan.Extensions.VK_QNX_screen_surface
       Vulkan.Extensions.VK_SEC_amigo_profiling
       Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping
